任何想法,为什么我得到了德尔福XE这样的警告:
[DCC警告] Form1.pas(250):W1036变量 '$框架' 可能尚未初始化
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](http://docwiki.embarcadero.com/RADStudio/en/Anonymous_Methods_in_Delphi ),在“变量绑定机制”部分。但是,当我试图掌握其含义时,我的头脑就会旋转。 –