2

我目前在DELPHI 2010中设计一个数据库接口,我设计了几个表单接口,都封装在一个 Delphi 项目结构中。我首先开始设计一个特定的界面窗体,结果,当我运行 .exe 文件时首先出现一个不相关的窗体,而我希望在加载程序时出现一个菜单窗体。我的问题是:

  1. 当我编译的项目的 .exe 运行时,如何让我的菜单表单首先打开?
  2. 我需要使用什么功能来编程此菜单上的导航按钮以打开新表单?
  3. 我应该在每个表单的“退出”按钮上使用什么功能来单独关闭表单,而不关闭整个程序?

我对 Pascal 有很好的了解,但我对在这个平台上编写面向对象的解决方案是新手。

4

1 回答 1

5

您应该确定您的表单是自动创建还是按需创建。您还应该决定哪种形式是主要形式。

角落的问题是您是否可以打开同一个类的多个表单,例如,如果您制作了“文件查看器”表单,那么为不同的文件打开其中的几个表单可能是有意义的。

对于自动创建的表单:

1.1 打开项目源(.dpr 文件,Project/View Source 菜单)或在 Forms 部分打开 Project 选项。将 MenuForm 设置为创建列表中的第一个(最顶部)。
1.2 检查所有其他表格是否有其.visible属性false

2:根据程序的逻辑,您应该使用 Form1.Show 或 Form1.ShowModal

3:Self.Close 或 Self.Hide 或 Self.Visible := false。更好的第一个:http :
//docwiki.embarcadero.com/Libraries/XE2/en/Vcl.Forms.TCustomForm.Close 如果您使用这些表单的 OnClose 事件 - 确保您没有更改关闭的默认 caHide 操作

对于手动生命周期控制形式:

1:打开项目源(.dpr 文件,项目/查看源菜单)或在表单部分打开项目选项。设置 MenuForm 是唯一一个创建的。

2.1。some-temporary-variable := TFormClass.Create(Application);
2.2. 然后你调整一些属性,some-temporary-variable比如要打开的文件名或一些数据源等等。
2.3. 然后你做some-temporary-variable.Showor some-temporary-variable.ShowModal
注意:使用 ShowModal 可能会冻结您的应用程序,在这种情况下TFormClass.Create(SomeAnotherForm),请使用 Application 作为父级。

3:Self.Release http://docwiki.embarcadero.com/Libraries/XE2/en/Vcl.Forms.TCustomForm.Release
或 Self.Close 并caFree在 OnClose 事件中指定操作 - http://docwiki.embarcadero.com/Libraries /XE2/en/Vcl.Forms.TCustomForm.OnClose

于 2013-01-10T11:01:53.770 回答