我在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;
老实说,我很困惑,语法似乎正确,程序是从事件选项卡自动生成的。
有什么建议吗?
答案 0 :(得分:3)
如果Unit2
是项目中的另一个单位(可能是它的名称判断),则不能直接用作类型。单位只声明事物。这就是编译器期望.
的原因,因为您可以在标识符前面加上单位的名称,以指向该特定单位的声明。
要更正此问题,请写下dlg: TForm2;
通常的做法是从类声明中调用构造函数,而不是变量,因此将其更改为:
dlg := TForm2.Create(nil);
或者使用Form2
变量,该变量通常会包含TForm2
的实例。默认情况下,为隐私创建添加到Delphi项目的额外表单,为Show
或ShowModal
做好准备。