首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于使用MethodAddress方法调出的过程中带参数的有关问题

2012-02-13 
关于使用MethodAddress方法调出的过程中带参数的问题我使用MethodAddress方法获得了另一个窗体中的某一过

关于使用MethodAddress方法调出的过程中带参数的问题
我使用MethodAddress方法获得了另一个窗体中的某一过程的指针,但该过程带有一个字符串型的参数,我发现调用该过程时,这个参数出错,请问大家有知道问题出在哪里吗?代码如下:

var
  _Load: procedure(AText: string);
begin
  @_Load := _Form.MethodAddress('Sys_HotKey'); //_Form为某一窗体
  if @_Load <> nil then
  _Load('123'); //传入字符串‘123’,但事实上传不过去。
  end;
  end;

[解决办法]
参考 TMethod 的结构定义
[解决办法]

Delphi(Pascal) code
  TForm1 = class(TForm)    Button1: TButton;    procedure Button1Click(Sender: TObject);  published     procedure test(str: string);    { Public declarations }  end;procedure TForm1.test(str: string);begin  ShowMessage(str);end;procedure TForm1.Button1Click(Sender: TObject);type  Test = procedure(AObj : TObject; str: string);var  TAddress: Pointer;  T1: Test;begin  TAddress := Form1.MethodAddress('test');  T1 := Test(TAddress);  T1(nil, '123');end; 

热点排行