主窗体为frmlogin
在frmlogin 的按钮btnLogin点击事件中
调用了frmmain,然后把frmlogin隐藏。
这时候,发现frmmain最小化的时候会出现在windows的开始按钮上面一点点,而不是去了任务栏。

解决方案 »

  1.   

    把frmMain设置为主窗体,但开始不显示出来,而是开始显示frmlogin,之后再把主窗口显示出来!
      

  2.   

    因为你的主窗口变成了frmLogin而不是frmMain
    建立登录窗口时不要用
    Application.CreateForm(TfrmLogin,frmLogin);
    而用
    frmLogin := TfrmLogin.Create(Application);
    frmLogin.ShowModal;
      

  3.   

    在类声明中重载CreateParams:
    procedure CreateParams(var Params: TCreateParams); override;
    然后:
    procedure TfrmChild.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      Params.ExStyle:= Params.ExStyle or WS_EX_APPWINDOW;
    end;或是:
    SetWindowLong(form.Handle,GWL_EXSTYLE,GetWindowLong(form.Handle,GWL_EXSTYLE) or WS_EX_APPWINDOW);
      

  4.   

    ...
      protected
        procedure CreateParams(var Params: TCreateParams); override;
    ...
    procedure TForm2.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      Params.WndParent := GetDeskTopWindow;
    end;