我目前正在学习 Delphi 的基础知识。
当我隐藏主窗体并显示新窗体时,任务栏上该程序的图标消失了。
FRMsecond.show;
Frmmain.hide;
我的程序.dpr
如下所示:
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TFRMlogin, FRMlogin);
Application.CreateForm(TFRMstatistics, FRMstatistics);
Application.CreateForm(TFRMregister, FRMregister);
Application.Run;
end.
这是预期的行为。
您已
Application.MainFormOnTaskbar
设置为True
,因此任务栏按钮归Application.MainForm
窗口所有。当您隐藏MainForm
的窗口时,其关联的任务栏按钮将被隐藏。当您显示MainForm
的窗口时,其任务栏按钮将显示。这就是任务栏按钮的工作方式,正如设计的那样。如果您不喜欢这种行为,您可以将其设置为
Application.MainFormOnTaskbar
1 ,那么任务栏按钮将归窗口所有,因此无论 的可见性如何都将可见(除非您隐藏窗口)。False
TApplication
MainForm
TApplication
ShowMainFormOnTaskbar
(不幸的是)不仅与任务栏有关,还与自 Windows Vista 以来引入 VCL 的许多其他与 Windows 相关的行为有关。因此,请记住,设置ShowMainFormOnTaskbar
为False
可能会对您的程序产生副作用。它基本上会忘记它是在现代 Windows 版本上运行的,并会相应地运行。将 Application.MainFormOnTaskbar 设置为 False 确实可以工作,但是(我忘了说,是我的错)我正在尝试一种非常古老的 Delphi 语言,因此将 Application.MainFormOnTaskbar 设置为 False 不起作用。我找到了一种解决方法(创建了一个小程序):