Delphi提供语法错误:。预期但;发现错误

时间:2014-08-24 20:56:19

标签: delphi delphi-xe6

我在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;

老实说,我很困惑,语法似乎正确,程序是从事件选项卡自动生成的。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

如果Unit2是项目中的另一个单位(可能是它的名称判断),则不能直接用作类型。单位只声明事物。这就是编译器期望.的原因,因为您可以在标识符前面加上单位的名称,以指向该特定单位的声明。

要更正此问题,请写下dlg: TForm2;

通常的做法是从类声明中调用构造函数,而不是变量,因此将其更改为:

dlg := TForm2.Create(nil);

或者使用Form2变量,该变量通常会包含TForm2的实例。默认情况下,为隐私创建添加到Delphi项目的额外表单,为ShowShowModal做好准备。