加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 有没有办法避免在任务栏迷你窗口悬停时显示隐藏的表单

发布时间:2020-12-15 09:11:32 所属栏目:大数据 来源:网络整理
导读:这适用于具有子窗体的Delphi应用程序,该子窗体已显示然后隐藏但未释放.如果用户将鼠标悬停在应用程序的( Windows 10)任务栏“迷你视图”上,则隐藏的表单将变为可见(在悬停期间).当用户单击迷你视图以将焦点更改为时,它们将隐藏应用程序.有什么方法可以避免这
这适用于具有子窗体的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显示问题.

>运行Delphi
>打开任何代码文件并搜索字符串,然后使用F3,直到出现“找不到搜索匹配”,“从文件开头重新开始搜索”对话框
>从步骤2关闭“未找到搜索匹配”窗口.
>将鼠标悬停在Delphi任务栏按钮上,然后将其移动到迷你预览.
>您应该会在Delphi主窗口上看到“未找到搜索匹配”窗口.
我在柏林和东京证实了这一点(10.2.1)

解决方法

似乎Dave Olson关于这个特定于Windows版本的评论是正确的.在Windows 10的最新版本中,这个问题似乎已经完全消失了(即使与之前显示该问题的旧程序编译版程序一起使用.)另外,我想知道无法重现问题的人是否在Windows Insider程序并有更新的版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读