如题:
用ShowWindow(Application.Handle,SW_HIDE);

SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
方法均失效了。编译环境:XP+Delphi2007以上方法对BorderStyle为bsNone的窗体无效,求解决方法。

解决方案 »

  1.   

    窗体的句柄不是Application.Handle
    用Self.Handle
      

  2.   

    {$ifdef ver180}
      Application.MainFormOnTaskbar := True;
      {$else}
      SetWindowLong(Application.Handle, GWL_EXSTYLE,
          GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
      {$endif}
      

  3.   

    方法一(对Delphi2007有效)
    procedure TMain.FormShow(Sender: TObject);
    begin
     ShowWindow(Application.Handle,SW_HIDE);
    end;方法二(对Delphi2007无效)
    procedure TMain.FormCreate(Sender: TObject);
    begin
      //在任务条隐藏应用程序
      SetWindowLong(Application.Handle,GWL_EXSTYLE,
                    GetWindowLong(Application.Handle,GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
    end;以上两种方法对Delphi2007的BorderStyle为bsNone的窗体无效!
    注意关键词是:Delphi2007!
    还望高手指点一下。最好在测试Delphi2007测试下。
    谢谢。
      

  4.   

    procedure TForm1.FormShow(Sender: TObject);
    begin
      SetWindowLong(Self.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
    end;
    这样试试,看看是不是你要的~
      

  5.   

    SetWindowLong(Self.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

      SetWindowLong(Application.Handle,GWL_EXSTYLE,
                    GetWindowLong(Application.Handle,GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
    肯定不行的。在Delphi2007下任务栏上普通窗口都隐藏不了。继续咨询……
      

  6.   

    试试
    begin
      Application.Initialize;
      SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
      Application.CreateForm(TForm1, Form1);
      SetParent(Application.Handle,form1.Handle);
      Application.Run;
    end.
      

  7.   

    问题自己解决了!1.在dpr文件中设置
    Application.MainFormOnTaskbar := False;2.在主窗口pas文件中设置
    procedure TMain.FormShow(Sender: TObject);
    begin
     ShowWindow(Application.Handle,SW_HIDE);
    end;