自定义事件传的参数出现乱码
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TMyClass = class private FGetStrProc:TGetStrProc; public property GetStrProc:TGetStrProc read FGetStrProc write FGetStrProc; procedure OnGetStrProc; end; TForm1 = class(TForm) btn1: TButton; procedure FormCreate(Sender: TObject); procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; MyObject:TMyClass;implementation{$R *.dfm}{ TMyClass }procedure TMyClass.OnGetStrProc;begin if Assigned(FGetStrProc) then FGetStrProc('Hello, World');end;procedure ReceiveMsg(const S: string);begin ShowMessage(s); //此处得到的是乱码end;procedure TForm1.FormCreate(Sender: TObject);var TmpEvent:TGetStrProc;begin MyObject := TMyClass.Create; TMethod(TmpEvent).Code := @ReceiveMsg; TMethod(TmpEvent).Data := MyObject; MyObject.GetStrProc := TmpEvent;end;procedure TForm1.btn1Click(Sender: TObject);begin MyObject.OnGetStrProc;end;end.