我有一个D2006应用程序,可以通过托盘气球提示通知各种事件。偶尔,但不是很频繁- -比如应用程序-的10次调用中就有1次,其中一个提示决定它将一次又一次地出现……永远不变。唯一能阻止它的就是关闭应用程序。
如果应用程序发出另一个气球提示,它将替换幻影提示,但在新提示超时后,幻影提示将返回。同样,如果我关闭幻影提示,它会立即返回。
我已经验证了创建提示的代码没有被重复调用。这种暗示起源于肠道更深的某处。
MainForm.TrayIcon1.BalloonFlags := Flag ;
MainForm.TrayIcon1.BalloonTitle := Title ;
MainForm.TrayIcon1.BalloonHint := Message ;
MainForm.TrayIcon1.BalloonTimeout := Delayms ;
MainForm.TrayIcon1.ShowBalloonHint ;发布于 2011-03-08 21:18:39
为气球提示创建一个公共入口点。即包装器函数。除了要显示的文本之外,还应包括另一个名为WhereCalledFrom的字符串参数,并使用该参数来标识应用程序的哪个部分正在调用提示。
在包装器中,记录所有提示调用(对.txt文件、GExperts调试器、Windows Output Debug String、Windows Event Log等)。记录日期/时间、WhereCalledFrom和消息。这应该可以让你很容易地追踪到它。
发布于 2011-03-10 08:42:46
你可能想尝试关闭自动关闭气球关闭,让你的应用程序来做,例如,当你显示气球时设置一个计时器,然后当计时器到期时,关闭气球。
最重要的是(我在c#中也遇到过类似的问题--我认为这更多是windows的问题,而不是特定于集成开发环境的问题),其中一个解决方案是手动将托盘图标设置为不可见,然后将其设置为可见。
TrayIcon1.Visible := false;
TrayIcon1.Visible := true;所以当你手动隐藏气球图标时,运行上面的代码来“清理”系统托盘。这可能会阻止“幻影”气球暗示。只是想试一试。
https://stackoverflow.com/questions/5232533
复制相似问题