小弟初学,向各位求助。程序在主界面(mainform)中调出一个窗体(form1)后,form1在最小化后,如何在任务栏中显示。(或者在下次需要调出时如何调出)。

解决方案 »

  1.   

    做成MDI子窗体,最小化在左下角
      

  2.   

    可以的procedure TForm2.FormCreate(Sender: TObject);
    begin
    SetWindowLong(self.Handle,GWL_EXSTYLE,GetWindowLong(self.Handle,GWL_EXSTYLE) or WS_EX_APPWINDOW);
    end;
      

  3.   

    这个其实是Delphi的一个毛病。
    真的不知道VCL要设计一个Applicaton放在任务栏上面。也不知道为什么要ShowModal时要把所有的窗口设为不可用。可以通过这样上面的办法来实现,也可以通过下面:
    在Form类中:
    procedure CreateParams(var Params: TCreateParams); override;
    ...
    procedure TfrmASMain.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      with Params do
      begin
        WndParent := GetDesktopWindow();
      end;
    end;
    不过建议不要在任务栏中出按钮出来,不然,以后麻烦事会很多,比如有窗体ShowMadal以后
      

  4.   

    同问下,我用findwindow得到窗体的handle,怎么把这个handle转化为TForm,
    因为的我要判断这个窗体的状态是最小化,还是不激活状态,SetForegroundWindow(handle)不能显示最小化窗体,而ShowWindow我必须先知道窗体的状态,高手发言,谢谢了!
      

  5.   

    if not IsIconic(Handle) then
      SetForegroundWindow(Handle);