delphi - 在同一项目中链接 DELPHI 中的不同表单

标签 delphi oop interface pascal

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

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

我对 Pascal 有很好的了解,但我对在此平台上编程面向对象的解决方案还很陌生。

最佳答案

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

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

对于自动创建的表单:

1.1 打开项目源(.dpr 文件,“项目/查看源”菜单)或在“表单”部分中打开“项目”选项。将 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.Showsome-temporary-variable.ShowModal
注意:使用 ShowModal 可能会卡住您的应用程序,在类似 TFormClass.Create(SomeAnotherForm) 的情况下,请使用 Application 作为父级。

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

关于delphi - 在同一项目中链接 DELPHI 中的不同表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14256218/

相关文章:

c# - 在 C# 中处理对象中的列表或字典的最佳方法是什么

java - 将类转换为不相关的接口(interface)

Delphi 控制台管道已切换?

android - 如何在 Delphi 中以编程方式拒绝(挂断)Android 上的来电?

delphi - 使用 Delphi 以编程方式获取 ODBC 数据源名称列表

javascript - 必要时将 `this` 放入 `forEach` 回调的首选方法是什么?

c# - 接口(interface)中的重载方法

Linq - 将 IQueryable 转换为 IList 返回 null - 为什么?

unit-testing - 我是否应该为每个类创建一个接口(interface)以使我的代码可测试(单元测试)

macos - 如何在 Delphi XE2 中向 Mac OS Finder 添加菜单项