德尔福:JEDI TrayIcon隐藏所有帧.窃听器

max*_*fax 4 delphi trayicon frames jedi

我有一个框架,两个按钮和一个JEDI TrayIcon(TJvTrayIcon,版本3.40).德尔福XE.

第一个按钮:

Frame11.Visible := true;
Run Code Online (Sandbox Code Playgroud)

第二:

Frame11.Visible := false;
Run Code Online (Sandbox Code Playgroud)

当我尝试最小化窗口 - >从系统托盘恢复它时 - >单击"Visible:= false"按钮然后"Visible:= true"=框架不会出现.

问题在于[tvAutoHide]TJvTrayIcon的可见性.

我没有在一个新项目中看到这个问题,但我有一个旧项目.我无法理解它为什么会发生以及如何防止它.请参阅我的问题项目:http://www.filedropper.com/trayicon

感谢帮助!

Ser*_*yuz 7

你是对的,有一个错误TJvTrayIcon.如果AnimateToTrayVisibility选择,它不会恢复Application.ShowMainFormApplication.MainForm.Visible状态.它显示窗口,但恢复后窗体的"可见"仍为false.这导致任何显示隐藏控件失败的尝试,因为他们的父母似乎没有显示.

修复错误超出了这个答案的范围.对于解决方法:

Application.ShowMainForm := True;
Visible := True;
Run Code Online (Sandbox Code Playgroud)

某处.要快速测试,请在显示框架之前在Button1单击事件中进行.但是你想在主表格恢复之后把它放在没有其他副作用的地方.