TMyProc=procedure of Object;obj:=Txxx.Create;ProcPtr:= obj.test;
来源:互联网 发布:英语语音识别软件 编辑:程序博客网 时间:2024/05/29 12:48
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure BBB(I: Integer); procedure CCC(I: Integer); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Txxx=class procedure test; end;TMyProc=procedure of Object;TMyFunc=function(a: Integer): Integer of Object;var Form1: TForm1;implementation{$R *.dfm}procedure Txxx.test;begin showmessage('1');end;procedure TForm1.BBB(I: Integer);begin showmessage( 'BBB: ' + IntToStr(I)); end;procedure TForm1.CCC(I: Integer); begin showmessage( 'CCC: ' + IntToStr(I)); end;procedure TForm1.Button1Click(Sender: TObject);var ProcPtr:TMyProc; obj:Txxx;begin obj:=Txxx.Create; ProcPtr:= obj.test;//Txxx.test; ProcPtr; obj.Free;end;procedure TForm1.Button2Click(Sender: TObject);type Taaa = procedure (i:integer) of object ; var ap: Taaa; begin ap := BBB; //这里有一个隐含Self,完整格式: self.BBB;这里把BBB这个方法赋给ap这个变量,注意BBB与ap的声明原型要一样,不然会有错 ap(1); ap := CCC; ap(2); end;end.