S
sunrain_114
Unregistered / Unconfirmed
GUEST, unregistred user!
type
TmyFunc = function (x:Integer):Integer;
TmyPro = procedure;
……
public
{ Public declarations }
//function Func1(x:Integer):Integer;
// procedure myShow;
end;
function MyFun(aFun:TmyFunc;x:Integer):Integer;
implementation
{$R *.dfm}
function MyFun(aFun: TmyFunc
x: Integer): Integer;
begin
result := aFun(x);
end;
function Func1(x: Integer): Integer;
begin
result := x * 2 ;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Fun1 : '+IntToStr(myfun(Func1,5)));
end;
procedure myShow;
begin
showmessage('aaa');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
aPro : TmyPro;
begin
aPro := myShow;
aPro;
end;
我在button1与button2点击事件中调用的函数myFun与过程myshow,两者如果被声明为本窗体的局部函数与过程,编译不能通过,把声明从窗体类中移出,成为一个全局函数与过程,则可以正常使用。
为什么会这样? 求教?
TmyFunc = function (x:Integer):Integer;
TmyPro = procedure;
……
public
{ Public declarations }
//function Func1(x:Integer):Integer;
// procedure myShow;
end;
function MyFun(aFun:TmyFunc;x:Integer):Integer;
implementation
{$R *.dfm}
function MyFun(aFun: TmyFunc
x: Integer): Integer;
begin
result := aFun(x);
end;
function Func1(x: Integer): Integer;
begin
result := x * 2 ;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Fun1 : '+IntToStr(myfun(Func1,5)));
end;
procedure myShow;
begin
showmessage('aaa');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
aPro : TmyPro;
begin
aPro := myShow;
aPro;
end;
我在button1与button2点击事件中调用的函数myFun与过程myshow,两者如果被声明为本窗体的局部函数与过程,编译不能通过,把声明从窗体类中移出,成为一个全局函数与过程,则可以正常使用。
为什么会这样? 求教?