【问题标题】:Delphi: JEDI TrayIcon hides all frames. BugDelphi:JEDI TrayIcon 隐藏所有帧。漏洞
【发布时间】:2012-01-27 06:54:47
【问题描述】:

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

第一个按钮:

Frame11.Visible := true;

第二:

Frame11.Visible := false;

当我尝试最小化窗口时 -> 从系统托盘恢复它 -> 点击“Visible:=false”按钮,然后“Visible:=true”= 框架没有出现。

TJvTrayIcon 的可见性[tvAutoHide] 存在问题。

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

感谢您的帮助!

【问题讨论】:

  • 如果我试图解决这个问题,我会逐渐删除一些代码,直到程序开始运行。这将识别问题代码。你可以试试这个吗?
  • 当然,我已经删除了所有内容。请检查我的代码,什么都没有。
  • 好的,那么哪一点代码决定了代码的工作和不工作?
  • 无,仅剩Frame11.Visible := true;Frame11.Visible := false;!我不知道是什么导致了问题......显然不是我的代码。
  • 我无法将这些 cmets 与“我在新项目中没有看到这个问题,但我在旧项目中遇到了这个问题”调和起来。

标签: delphi frames trayicon jedi


【解决方案1】:

你说得对,TJvTrayIcon 中有一个错误。当AnimateToTrayVisibility 选项中时,它不会恢复Application.ShowMainFormApplication.MainForm.Visible 状态。它显示了窗口,但在您恢复它后,您的表单的“可见”仍然是错误的。这会导致任何显示隐藏控件的尝试都失败,因为它们的父控件似乎没有显示。

修复错误超出了此答案的范围。对于解决方法:

Application.ShowMainForm := True;
Visible := True;

某处。为了快速测试,在您的 Button1 单击事件中显示框架之前。但是为了没有其他副作用,你会想在主窗体恢复后放置它。

【讨论】:

    猜你喜欢
    • 2013-10-04
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多