HTML   发布时间:2022-04-14  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了德尔福,可以使形式模态到特定的父表单?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个应用程序,其中有一个主要的背景形式,从那里用户只能使用非模态形式来维护系统的不同部分.非模态表单覆盖CreateParams方法,以便每个方法在开始任务栏中显示一个按钮:
procedure TfmMaterialsPlAnning.CreateParams(var Params: TCreateParams);
begin
   inherited;
   //create a new window on the task bar when this form is created
   Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;

实际上,用户可以打开一个维持“苹果”的非模式形式,另一种维持“橘子”的非模态形式,并使用开始菜单栏轻松地在两者之间切换.

但是,如果他们从“苹果”形式开启模式,例如要设置选项,偏好等,那么在关闭模态窗体之前,他们不能使用“橘子”形式.

是否可以仅对父母表单形式模态?所以如果他们打开苹果的选择表格,他们不能使用苹果的维护表单,但仍然可以使用橘子维护表单?

谢谢

解决方法

如果您看看TCustomForm.ShowModal()的源代码,您将看到VCL不使用Windows API调用来显示模态对话框,但是它代替禁用应用程序中的所有其他窗体,而模态窗体是所示.您当然可以尝试相同,只需显示()窗体模式对话框,然后禁用父级,然后在窗体模式对话框关闭后重新启用它.需要一个中心的地方,您可以跟踪表单模式对话框,需要重新启用的表单等.然而,您应该彻底测试代码是否确实是您想要的,即使在应用程序之间来回切换时,最小化应用程序等等.

如此 – 我不认为这是一个好主意.它打破了Windows用户对应用程序行为的所有假设.与Mac OS X不同,Windows在应用程序模态和表单模式对话框之间没有任何区别,您应该坚持与正在编程的平台相一致的行为.

很可能是更好的方式来构建您的UI.请参阅“Windows用户体验互动指南”中的dialog boxes相关页面.更好地避免模态对话,链接的指导方针可以为许多用例提供更好的选择.如果您限制使用模态对话框,也许您不再需要表单模式对话框.

大佬总结

以上是大佬教程为你收集整理的德尔福,可以使形式模态到特定的父表单?全部内容,希望文章能够帮你解决德尔福,可以使形式模态到特定的父表单?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。