主要功能的参数和变量是否可以在子程序中使用,或者这样做有什么问题?
procedure TForm1.FormCreate(Sender: TObject);
var
Test : string;
procedure SubFnTest();
begin
ShowMessage(Self.Name);
ShowMessage(TForm1(Sender).Name);
ShowMessage(Test);
end;
begin
Test := 'hello';
SubFnTest();
end;
我现在正在Delphi-2007上测试这段代码,似乎没有问题,但我对这种做法引起的麻烦有一些微弱的记忆(我真的不记得那时候出现了什么问题)
答案 0 :(得分:3)
你的代码绝对没问题。嵌套函数可以引用外部作用域中的变量。
我怀疑你记得的是不允许使用嵌套函数作为程序值。例如,请在此处查看该主题的讨论:Why cannot take address to a nested local function in 64 bit Delphi?