Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Delphi主窗体WindowState返回为";wsNormal";窗口何时最小化?_Windows_Forms_Delphi_Delphi 7 - Fatal编程技术网

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

为什么Delphi主窗体WindowState返回为";wsNormal";窗口何时最小化?,windows,forms,delphi,delphi-7,Windows,Forms,Delphi,Delphi 7,我有一个用Delphi7编写的监控应用程序,它在辅助监控器的一部分上运行。如果窗口最小化(例如,如果我在主显示器上使用“Windows-d”(view desktop)命令),我希望让它将自身恢复到正常可见性 我每隔几秒钟就尝试一次由计时器激活的代码: if (Mainform.WindowState <> wsNormal ) then Mainform.WindowState := wsNormal; {restore main window i

我有一个用Delphi7编写的监控应用程序,它在辅助监控器的一部分上运行。如果窗口最小化(例如,如果我在主显示器上使用“Windows-d”(view desktop)命令),我希望让它将自身恢复到正常可见性

我每隔几秒钟就尝试一次由计时器激活的代码:

    if (Mainform.WindowState <> wsNormal ) then
        Mainform.WindowState := wsNormal;      {restore main window if minimized}
if(Mainform.WindowState wsNormal)则
Mainform.WindowState:=wsNormal;{最小化后还原主窗口}

它不起作用。为了调试它,我修改了代码,在程序运行时将Mainform.WindowState的值记录到一个文件中。即使主窗体的窗口最小化,该值仍保持wsNormal。为什么?

因为主窗体没有最小化。当应用程序最小化时,VCL只隐藏主窗体。您可以测试应用程序是否最小化,如果最小化,可以恢复:

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

注意:在较新的Delphi版本中,如果
Application.MainFormOnTaskbar
为True,则主窗体的窗口状态将为
wsMinimized