有什么想法,为什么我在Delphi XE中会收到这个警告:
[DCC Warning] Form1.pas(250): W1036 变量 '$frame' 可能未初始化。
[DCC Warning] 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的变量。我甚至不确定带有$符号的$ frame如何成为有效标识符。
看起来像编译器的魔法。
PS:当然,真实生活中的xosw具有除Form1,Button1,Action1之外的其他名称。