你的form是这样创建解就可以
 private
    { Private declarations }
    procedure CreateParams(var Params: TCreateParams); override;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  // let this form assign to desktop
  // user can select it bypass mainform
  Inherited CreateParams(Params);
  if Assigned(MainForm) then
     Params.WndParent := GetDesktopWindow;
end;

解决方案 »

  1.   

    用ShellAPI编程实现之,或者找些现成的控件用用,不用费心的。呵呵
      

  2.   

    可是这样一来,在任务栏就多了一个图标了。我不想让用户察觉到这个form的存在。
      

  3.   

    那你就HIDE了这个窗口不就可以了吗?
      

  4.   

    我明白你的意思,我也做过。你用Application.minimize;
    语句好像是这样子的,你调试看看。
      

  5.   

    ShowWindow(Application.Handle, SW_MINIMIZE);
      

  6.   

    试试:
    Application.mainForm.Visible:=false;
      

  7.   

    假如把application也minimize的话,那么整个程序就不见了。而我只想让某一个form从用户面前消失。
      

  8.   

    //只需两句:procedure TForm1.Button1Click(Sender: TObject);
    begin
            SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
            self.Hide;
    end;
      

  9.   

    //只需两句:procedure TForm1.Button1Click(Sender: TObject);
    begin
            SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
            self.Hide;
    end;