如何拆分大型GUI的代码?

时间:2014-09-21 13:07:11

标签: delphi user-interface

我有一个带有大型GUI的程序。 GUI分为几个选项卡。 用于管理GUI的代码(例如,一个选项卡包含完整的Windows资源管理器克隆)非常大。

哪种方法可以在多个文件中拆分这么大的GUI,但没有以多种形式拆分GUI(在运行时)?

1 个答案:

答案 0 :(得分:4)

使用嵌入表格。这样,您可以将每个文件保存在单独的文件中,并且在运行时它们看起来都是同一GUI表单的一部分。

创建一个全局变量来存储当前表单:

MyForm: TForm; 

您不想自动创建表单,因此请从项目选项中删除它们 - >表单自动创建列表。相反,以这种方式动态创建它们:

MyForm := TMyForm.Create(Application); 

然后根据需要设置属性,包括以下内容:

我假设您在要在其中嵌入表单的标签页上有一个名为EmbeddedMyForm_panel的面板。无论如何,那就是我做的。您也可以直接使用TTabSheet。

with MyForm do begin 
  BorderIcons := []; 
  BorderStyle := bsNone; 
  parent      := EmbeddedMyForm_panel; 
  Align       := alClient; 
  Visible     := true; 
end; 

我参与了许多项目,这些项目使用这种方法非常成功地在一个巨大的GUI内部的大量选项卡上嵌入了单独的表单。

补充:当我问他们为什么不使用框架时,我被告知在主窗体上有十几个或更多的嵌入表单,加载框架将需要永远,因为IDE会抱怨不能够找到表格上几乎每一帧的祖先形式。您需要首先打开所有框架表单,以便打开主窗体而不从IDE获得任何警告。如果您只是想在主窗体上工作(例如编辑主菜单)并且根本不需要处理任何帧,那么这尤其令人讨厌。