为什么Delphi主窗体WindowState返回为" wsNormal"当窗口最小化?

时间:2013-12-24 16:40:46

标签: windows forms delphi delphi-7

我有一个用Delphi 7编写的监控应用程序,它运行在辅助监视器的一部分上。如果窗口被最小化(例如,如果我在主监视器上使用" Windows-D"(查看桌面)命令),我希望将其恢复到正常可见性。

我每隔几秒就尝试用一个计时器激活这段代码:

    if (Mainform.WindowState <> wsNormal ) then
        Mainform.WindowState := wsNormal;      {restore main window if minimized}

它不起作用。为了调试它,我更改了代码,以便在程序运行时将Mainform.WindowState的值记录到文件中。即使主窗体窗口最小化,该值仍然是正常的。为什么呢?

1 个答案:

答案 0 :(得分:7)

因为主要形式没有最小化。当应用程序最小化时,VCL只隐藏主窗体。您可以测试应用程序是否已最小化,如果是,则还原:

if IsIconic(Application.Handle) then
  Application.Restore;