我在Delphi XE6中四处游玩,并将此过程添加到按钮上:
procedure TTabbedForm.btnLoadingClick(Sender: TObject);
var
dlg: Unit2;
begin
dlg := Form2.Create(nil);
Form2.ShowModal();
end;
Delphi在编译时给出以下错误:
[DCC Error] TabbedTemplate.pas(53): E2029 '.' expected but ';' found
[DCC Error] TabbedTemplate.pas(55): E2029 ';' expected but 'BEGIN' found
[DCC Fatal Error] Speelpleintjes.dpr(7): F2063 Could not compile used unit 'TabbedTemplate.pas'
第53行是:dlg: Unit2;
老实说我很困惑,语法似乎是正确的,过程是从事件选项卡自动生成的。
有什么建议吗?
如果Unit2
是您项目中的另一个单元(从它的名称判断它可能是),它不能直接用作类型。单位只声明东西。这就是为什么编译器期望.
,因为你可以在标识符的前面加上单元名,以直接指向该特定单元中的声明。
修改dlg: TForm2;
通常的做法是从类声明中调用构造函数,而不是从变量中调用,因此将其更改为:
dlg := TForm2.Create(nil);
或者使用Form2
变量,它通常已经保存了TForm2
的一个实例。默认情况下,添加到Delphi项目中的额外窗体是隐藏创建的,准备用于Show
或ShowModal
。