码迷,mamicode.com
首页 > 其他好文 > 详细

根据函数名称---函数指针--调用函数

时间:2017-02-02 14:01:40      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:sig   dna   call   cal   end   point   res   oda   分享   

type
   TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject) ;
     procedure CallMeByName(Sender: TObject) ;
   private
     procedure ExecMethod(OnObject: TObject; MethodName: string) ;
   end;

var
   Form1: TForm1;

type
   TExec = procedure of object;

procedure TForm1.ExecMethod(OnObject: TObject; MethodName: string) ;
var
   Routine: TMethod;
   Exec: TExec;
begin
   Routine.Data := Pointer(OnObject) ;
   Routine.Code := OnObject.MethodAddress(MethodName) ;
   if NOT Assigned(Routine.Code) then Exit;
   Exec := TExec(Routine) ;
   Exec;
end;

procedure TForm1.CallMeByName(Sender: TObject) ;
begin
   ShowMessage(Hello Delphi!) ;
end;

procedure TForm1.Button1Click(Sender: TObject) ;
begin
   ExecMethod(Form1, CallMeByName) ;
end;

技术分享

 

根据函数名称---函数指针--调用函数

标签:sig   dna   call   cal   end   point   res   oda   分享   

原文地址:http://www.cnblogs.com/del88/p/6361117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!