我有一个delphi应用程序,其中的主窗体是一个登录窗体-这包含了程序所需的各种数据库和用户对象。一旦用户登录,我隐藏这个表单并打开另一个表单。
我的问题是,当子窗体最小化时,如何使应用程序最小化?我想出了如何使用windows消息恢复main时如何恢复孩子,但我不知道如何让应用程序最小化,所以当他们点击任务栏时,他们只需单击一次,而不是一次最小化,然后再次恢复。
感谢任何帮助-我正在尝试使用NCACTIVATE -但在某些情况下,打印对话框和其他窗口会导致无限循环……
谢谢,克丽丝蒂
发布于 2009-04-23 16:44:00
我发现的最好的方法就是在架构上做一些细微的改变。您不希望您的登录窗体成为应用程序的主窗体。你可以用两种不同的方法来解决这个问题,但是因为你是在你的登录表单上维护你的数据库控件,所以我认为这是最理想的方法。
理想情况下,您应该将所有数据库组件移动到DataModule中,以便在登录完成后释放LoginForm。
发布于 2009-04-23 16:44:15
为什么不将主窗体作为现有的子窗体,将数据库逻辑放在数据模块中,并手动创建和处理登录窗体呢?这是我通常使用的模式:
创建一个数据模块,它将首先在列表中自动创建(在主窗体之前)。OnCreate中的Tee数据模块将初始化数据库并显示一个登录表单,该表单不在自动创建列表中,并且完全在数据模块中创建和处理。如果我需要一个闪屏,那么数据模块也会以同样的方式提供该功能。
mainform OnCreate检查以确保用户成功登录,如果未成功登录,则调用application.terminate;
发布于 2009-04-23 18:43:59
当非主窗体最小化时,我使用TMinModal最小化我的应用程序。
http://vvv.truls.org/pascal/Units.Delphi/UI/MinModal.pas
https://stackoverflow.com/questions/782454
复制相似问题