Delphi给出语法错误:.期待但是;发现错误



我在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项目中的额外窗体是隐藏创建的,准备用于ShowShowModal

最新更新