function ShowmodalForm(ATfromclass: TFormClass; aFormName, aHint: string): Integer;
var
  WindowList: Pointer;
  ActiveWindow: HWnd;
  Frm: TForm;
begin
  Frm := ATfromclass.Create(nil);
  try
  Frm.Show;
  repeat
    Application.HandleMessage;
  until not Frm.Showing;
  finally
      FreeAndNil(Frm); 动态创建后到这里无法释放,写这个函数的原因是为了,在创建的时候显示一个提示框,创建完成后关闭提示框
  end;
end;fromCreate(nil);

解决方案 »

  1.   

    如果楼主是希望等待窗口关闭,这样的用法弱爆了,好用的 Frm.ShowModal 模式打开居然不知道?
      

  2.   

    //显示提示窗口
    create
    show
    //关闭提示窗口我要的是这种功能ShowModal 
    显示后无法关闭提示窗口
      

  3.   

    第一个单元procedure TForm1.Button1Click(Sender: TObject);
    begin
      Application.CreateForm(TForm2, Form2);
      Form2.ShowModal;
      Form2.Free;
    end;第二个单元procedure TForm2.FormActivate(Sender: TObject);
    begin
      Self.OnActivate := NIL;
      PostMessage(Handle , WM_CLOSE , 0 , 0);
    end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    with TForm2.Create(Application) do begin  
      ShowModal;
      Free;
    end;
    end;
      

  5.   

    function ShowmodalForm(ATfromclass: TFormClass; aHint: string): Integer;
    var
      Frm: TForm;
    begin
      Frm := ATfromclass.Create(nil);
      Frm.Hint:=aHint;
      Frm.ShowModal;
      FreeAndNil(Frm);
    end;
      

  6.   

    procedure ShowmodalForm(ATfromclass: TFormClass; aHint: string);
    begin
     with   ATfromclass.Create(nil) do begin
        Hint:=aHint;
      ShowModal;
      Free ;
     end;
    end;