主函数的参数和变量可以在子程序中使用吗?或者这样做有什么问题吗?
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上测试这段代码,似乎没有问题,但是我对这种实践所带来的麻烦有一些模糊的记忆(我不记得当时的问题是什么)。
发布于 2016-07-20 13:33:30
你的代码绝对没问题。嵌套函数可以引用外部作用域中的变量。
我怀疑您记住的是,不允许将嵌套函数用作过程值。例如,请参阅此处对该主题的讨论:Why cannot take address to a nested local function in 64 bit Delphi?
https://stackoverflow.com/questions/38482499
复制相似问题