根据字符串找到函数并执行

关键字:MethodAddress:取得方法的地址,这个方法需要是published的。
 
unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;



type



  TShowInfo = procedure(info:string) of object;    //声明一个procedure类型,参数和ShowInfo一致



  TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }



  published

    procedure ShowInfo(info:string);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



{ TForm1 }



procedure TForm1.ShowInfo(info: string);

begin

  ShowMessage(info);

end;



procedure TForm1.Button1Click(Sender: TObject);

var

  s:TShowInfo;

begin

  @s := MethodAddress('ShowInfo');       //取得ShowInfo的地址

  if @s <> nil then                      //如果不为空

  begin

    s('中华人民共和国');                 //执行

  end;

end;



end.
View Code

 

你可能感兴趣的:(字符串)