我有一个delphi应用程序,其中主窗体是一个登录表单 - 它包含程序所需的各种数据库和用户对象。用户登录后,我会隐藏此表单并打开另一个表单。
我的问题是,如何在最小化子表单时使应用程序最小化?我想出了如何在使用Windows消息恢复主要时恢复孩子,但我无法弄清楚如何让应用程序最小化,因此当他们点击任务栏时他们只需要点击一次 - 而不是一次最小化和然后再次恢复。
感谢任何帮助 - 我试图使用NCACTIVATE - 但在某些情况下会导致无限循环打印对话框和其他窗口......
谢谢, 克里斯蒂
答案 0 :(得分:3)
我发现的最佳方式是架构略有变化。您不希望您的登录表单成为您的应用程序的主要表单。您可以通过两种不同的方式解决这个问题,但由于您在登录表单上维护数据库控件,我认为这是理想的方法。
理想情况下,您应该将所有数据库组件移动到DataModule中,以便在登录完成后释放LoginForm。
答案 1 :(得分:2)
为什么不将主窗体设置为现有子窗体,将数据库逻辑放在数据模块中,手动创建和处理登录窗体?这是我通常使用的模式:
创建一个数据模块 在列表中自动创建FIRST(之前 主要形式)。 Tee datamodule in OnCreate将初始化数据库 并显示一个非NOT的登录表单 在自动创建列表中,是 完全创建和处理 数据模块。如果我需要一个飞溅 屏幕,然后数据模块也 提供了该功能 同样的方式。
主要形式OnCreate检查确保 用户成功登录, 如果不是那么电话 application.terminate;
答案 2 :(得分:0)
当非主要表单最小化时,我使用TMinModal来最小化我的应用程序。