很遗憾,申请表没有恢复。只有在单击任务栏图标后,表单才会恢复。
尝试使用表格
WindowState
改为:
procedure TForm1.Button1Click(Sender: TObject);
begin
Self.WindowState := wsMinimized;
ShowMessage('Test');
Self.WindowState := wsNormal;
end;
但是,当显示ShowMessage对话框时,任务栏图标会消失。
这是因为
Application.MainFormOnTaskbar
默认情况下为True。您正在隐藏/显示拥有任务栏按钮的窗口,这就是为什么该按钮也会隐藏/显示的原因。
如何避免这种情况?
你必须设置
Application.MainFormOnTaskbar = False
大体上
.dpr
文件之前
Application.Run()
被称为。这将使
Application
窗口成为任务栏按钮的所有者。它还应该解决以下行为
Application.Minimize()
/
Application.Restore()
也是。
然而,这样做将有效地使VCL的窗体窗口管理像Vista之前那样运行,这可能会导致Vista+中的其他副作用
MainFormOnTaskbar=True
旨在解决。所以要非常小心。
另一种方法是简单地将窗体窗口移出屏幕,然后将其移回。
与此同时,我找到了一个非常简单的解决方案
您可以使用表格
Hide()
和
Show()
方法改为:
procedure TForm1.Button1Click(Sender: TObject);
begin
Self.Hide;
ShowMessage('Test');
Self.Show;
end;