把不最小化的窗口的父窗口设置成桌面即可。
Form2 := TForm2.CreateParented(GetDesktopWindow);

解决方案 »

  1.   

    把桌面设置为父窗口
    Form2 := TForm2.CreateParented(GetDesktopWindow);
      

  2.   

    我试过了,没问题啊?
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
    Form2 := TForm2.CreateParented(GetDesktopWindow());
    Form2.Show;
    Form2.BringToFront;
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
    Form2.Free;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Action := caFree;
    end;end.
      

  3.   

    我知道原因了。你是不是设置成程序启动时自动创建所有窗口?如果这样,工程里面就会有Application.CreateForm(TForm2, Form2);这样的语句,因此也就不能再调用CreateParented了。你可以从Project菜单下面选Options,然后取消Auto Create Forms选项即可。
      

  4.   

    多谢chiphead(满脑袋芯片和程序的人指教