例如以下代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs; type TForm1 = class(TForm) procedure one(); function two(x,y:integer):integer; private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.one(); var p : pointer; begin p:=@two; end; function TForm1.two(x,y:integer):integer; begin Result:=x+y; end; end.
在Delphi5中,没有任何问题,到了delphi7、2007、2009中就会报错:需要变量(Delphi6没试) 原因是新版本中要求返回函数地址的函数必须是全局函数,所以程序要改成这样: ................................ var Form1: TForm1; function two(x,y:integer):integer; ................................ function two(x,y:integer):integer; ......
|
请发表评论