ShowMessage 已隐藏
Posted
技术标签:
【中文标题】ShowMessage 已隐藏【英文标题】:ShowMessage is hidden 【发布时间】:2013-09-25 08:05:35 【问题描述】:我在一个复杂的应用程序中使用 Delphi XE3,该应用程序具有 MDI 表单以及位于顶部的表单。
有时一个简单的ShowMessage('...')
不会出现并停留在主应用程序窗口的后面。
要么人们认为应用程序崩溃了,要么去任务管理器将应用程序放回顶部,然后显示消息窗口又回到顶部。
XP中出现这种情况,目前在Win8下还没有看到过。
知道为什么吗?
【问题讨论】:
奇怪,我们公司从 Vista+ 开始就有这个问题,但在 XP 上很好... XP 是最新的吗? 有一个showmessage,事情是有限的...... 创建一个我们可以检查的简单复制品。否则你会得到很多猜测和建议来做古怪的事情。至于一般建议,请停止使用留在顶部并正确设置窗口所有者,也就是弹出父级。 没有办法放置一个重现该代码的代码......或者我没有找到它。对我来说它看起来很随机......但我觉得它取决于最后一个具有焦点的窗口。 确实我注意到隐藏的显示消息出现在 MDIchild 聚焦之后,bstoolwindow set popupmode 设置为 pmnone。 【参考方案1】:你可以试试这个:
-
编写了您自己的 myShowMSG 函数。在这个函数中编写了简单的自定义消息表单和一些代码来控制 - “这个表单对用户可见吗?”在控制代码中将有关此问题的所有跟踪日志信息写入 error.log。在 .log 中包含实际创建的表单及其状态列表
将项目中的所有 ShowMessage 替换为 myShowMSG
运行所有测试
阅读您的错误日志。在这里发帖讨论
【讨论】:
以上是关于ShowMessage 已隐藏的主要内容,如果未能解决你的问题,请参考以下文章
Delphi berlin ShowMessage的改进与使用
delphi中的showmessage函数是调用的哪个API函数
delphi里application.MessageBox()与showmessage()有啥区别?
DELPHI中怎么调用showmessage这个函数来弹出一个对话框