【发布时间】:2012-01-02 03:11:06
【问题描述】:
我在 Delphi XE 中收到此警告的任何想法:
[DCC 警告] Form1.pas(250): W1036 变量“$frame”可能尚未初始化
procedure TForm1.Action1Execute(Sender: TObject);
var
Thread: TThread;
begin
...
Thread := TThread.CreateAnonymousThread(
procedure{Anonymos}()
procedure ShowLoading(const Show: Boolean);
begin /// <------------- WARNING IS GIVEN FOR THIS LINE (line number 250)
Thread.Synchronize(Thread,
procedure{Anonymous}()
begin
...
Button1.Enabled := not Show;
...
end
);
end;
var
i: Integer;
begin
ShowLoading(true);
try
Thread.Synchronize(Thread,
procedure{Anonymous}()
begin
... // some UI updates
end
Thread.Synchronize(Thread,
procedure{Anonymous}()
begin
... // some UI updates
end
);
finally
ShowLoading(false);
end;
end
).NameThread('Some Thread Name');
Thread.Start;
end;
我的代码中没有变量名称框架或 $frame。我什至不确定带有 $ 符号的 $frame 如何成为有效标识符。
我闻起来像编译器魔法。
PS:当然,现实生活中的 xosw 有除 Form1、Button1、Action1 以外的名称。
【问题讨论】:
-
这可能在Anonymous_Methods_in_Delphi 的“变量绑定机制”部分中进行了解释。但是当我试图理解其中的含义时,我头晕目眩。
标签: multithreading delphi warnings delphi-xe anonymous