gpt4 book ai didi

delphi - 有什么方法可以避免任务栏迷你窗口悬停时显示隐藏表单?

转载 作者:行者123 更新时间:2023-12-03 15:14:27 26 4
gpt4 key购买 nike

这适用于具有子窗体的 Delphi 应用程序,该子窗体已显示然后隐藏但未释放。如果用户将鼠标悬停在应用程序的 (Windows 10) 任务栏“迷你 View ”上,则隐藏的表单将变得可见(在悬停期间)。当用户单击迷你 View 将焦点更改为应用程序。有什么办法可以避免这种情况吗?

重新创建:

  1. 创建新的 VCL Forms 应用程序。
  2. 向项目添加一个新表单并将其设置为自动创建。
  3. 添加一个按钮来显示然后隐藏表单(或使用 ShowModal 打开它)
  4. 运行应用程序
  5. 单击按钮显示第二个表单,然后将其关闭。
  6. 将鼠标悬停在应用程序任务栏按钮上可显示主窗口的迷你 View 。
  7. 将鼠标悬停在迷你 View 上,您​​会看到隐藏的窗口出现在主窗体上。

请注意,最小化应用程序并恢复它确实会“修复”影响,直到下次显示表单为止。也许这是导致该问题的原因的线索,或者是解决方法的线索?这不是一个大问题,因为它似乎不会造成任何实际问题,但它看起来确实不专业。

根据要求添加代码(但这不会很有趣。)

program Project1;
uses
Vcl.Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.

// Only code that was added to TForm1:
procedure TForm1.Button1Click(Sender: TObject);
begin
// Show and then hide the form or use ShowModal and close it before testing the hover.
Form2.Show;
Form2.Hide;
// Form2.ShowModal;
end;
<小时/>

更新:如何仅使用 Delphi IDE 显示问题。

  1. 运行 Delphi
  2. 打开任意代码文件并搜索字符串,然后使用 F3,直到出现“搜索未找到匹配项”、“从文件开头重新开始搜索”对话框
  3. 关闭第 2 步中的“未找到搜索匹配项”窗口。
  4. 将鼠标悬停在 Delphi 任务栏按钮上,然后将其移至迷你预览。
  5. 您应该看到“未找到搜索匹配”窗口出现在 Delphi 主窗口上。我已在柏林和东京 (10.2.1) 上验证了这一点

[2023 更新]此行为与 Windows 10 和 11 上的系统属性、高级、性能设置中名为“最小化和最大化时动画窗口”的选项直接相关。关闭该选项时,不会发生上述行为。

最佳答案

戴夫·奥尔森 (Dave Olson) 关于这是 Windows 版本特定的评论似乎是正确的。这个问题似乎在 Windows 10 的最新版本中完全消失了(即使与以前显示该问题的较旧编译版本的程序一起使用也是如此。)顺便说一句,我想知道无法重现该问题的人是否在Windows Insider 计划并有更新的版本。

关于delphi - 有什么方法可以避免任务栏迷你窗口悬停时显示隐藏表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45523471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com