高手給个例子啊,用2007的方法不管用了 procedure TForm1.FormCreate(Sender: TObject); 
begin 
  with Application do 
    SetWindowLong(Handle,GWL_EXSTYLE,GetWindowLong(Handle,GWL_EXSTYLE) and not WS_EX_APPWINDOW or WS_EX_TOOLWINDOW); 
  SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE); 
end; 
还有 ShowWindow(Application.Handle, SW_HIDE); 
SetWindowLong(Application.Handle, GWL_EXSTYLE, 
not (GetWindowLong(Application.handle, GWL_EXSTYLE) 
or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW)); 
都不可以实现,请高手帮下我

解决方案 »

  1.   

    Delphi2007:
    procedure TfrmMain.actOpenFormExecute(Sender: TObject);
    var
      FHandle: THandle;
    begin
      FHandle := Application.Handle;
      if Application.MainFormOnTaskBar then
        FHandle := Handle;  if IsWindowVisible(FHandle) and not IsIconic(FHandle) then  //
      begin
        Application.Minimize;
        ShowWindow(FHandle, SW_HIDE);
      end
      else
      begin
        ShowWindow(FHandle, SW_SHOW);
        if IsIconic(FHandle) then
          Application.Restore;    Application.BringToFront;
        SetForegroundWindow(FHandle);
      end;
    end;
      

  2.   

    设置
    Application.MainFormOnTaskBar := false;
    即可。
      

  3.   

    用SetWindowLong是在D7中的方法,D2009只需要设置Application.MainFormOnTaskBar 为False或true即可控制是否在任务栏显示。最好是在工程里面设置:begin
      Application.Initialize;
      Application.CreateForm(TMainForm, MainForm); 
      Application.MainFormOnTaskBar := false;
      Application.Run;
    end.
      

  4.   


    好像不对,Application.MainFormOnTaskBar 为False的时候任务栏显示的标题是运行文件的名称,为true显示的是运行程序的窗口标题,
      

  5.   

    解决了:  把工程里的Application.MainFormOnTaskBar:=true ;
    改为 Application.MainFormOnTaskBar:=False ;在onshow 里加入:ShowWindow(Application.Handle, SW_HIDE); //不在任务栏显示
    就搞定.