这与带有子窗体的 Delphi 应用程序有关,该窗体已显示然后隐藏但未释放。如果用户将鼠标悬停在应用程序的(Windows 10)任务栏“迷你视图”上,隐藏的表单将变为可见(在悬停期间)。当用户单击迷你视图以将焦点更改为时,它们将隐藏应用程序。有没有办法避免这种情况?
要重新创建:
- 创建一个新的 VCL 表单应用程序。
- 向项目中添加一个新表单并将其设置为自动创建。
- 添加一个按钮以显示然后隐藏表单(或使用 ShowModal 打开它)
- 运行应用程序
- 单击按钮以显示第二个表单,然后将其关闭。
- 将鼠标悬停在应用程序任务栏按钮上以显示主窗口的迷你视图。
- 将鼠标悬停在迷你视图上,可以看到隐藏的窗口出现在主窗体上。
请注意,最小化应用程序并恢复它确实会“修复”影响,直到下次显示表单。也许这是导致它的线索或解决方法的线索?这不是一个大问题,因为它似乎不会导致任何实际问题,但它看起来确实不专业。
根据要求添加代码(但是它不会很有趣。)
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 来显示问题。
- 运行德尔福
- 打开任何代码文件并搜索一个字符串,然后使用 F3 直到出现对话框“未找到搜索匹配”、“从文件开头重新开始搜索”
- 关闭步骤 2 中的“未找到搜索匹配”窗口。
- 将鼠标悬停在 Delphi 任务栏按钮上,然后将其移至迷你预览。
- 您应该会看到“未找到搜索匹配”窗口出现在 Delphi 主窗口上方。我已经在柏林和东京 (10.2.1) 验证了这一点