在主窗体上,我点击菜单弹出一个窗体(这个窗体一出现,就执行自己写的程序,当执行完毕后,用MESSAGEBOX弹出信息,我想在弹出信息后将这个窗体关闭),该窗体用的ShowModal,我试了好多,比如说freeandnil(窗体),窗体可以关,但主程序就不能变成活动的了

解决方案 »

  1.   

    var 
    aform:Tformclass;try
     aform:=tformclass.create;
     aform.showmodal;
    finally
     aform.free;
    end;procedure aform.onshow(sender:Tobject);
    begin
    showmessage('HeHe...');
    self.modalresult:=mrok;
    end;
      

  2.   

    我在菜单中使用的是sShowDownLoadForm(Self);函数,在那个窗体里有对就在这个函数
    procedure ShowDownLoadForm(AOwner:TComponent);
    begin
      if not Assigned(DownLoadForm) then
         DownLoadForm:=TDownLoadForm.Create(AOwner);
        DownLoadForm.ShowModal;
    end;
      

  3.   


    procedure ShowDownLoadForm(AOwner:TComponent);
    begin
      if not Assigned(DownLoadForm) then
       try
         DownLoadForm:=TDownLoadForm.Create(AOwner);
        DownLoadForm.ShowModal;
       finally
        downloadform.free;
       end;
    end;
      

  4.   

    你应该先执行你的程序,然后再决定是否要showmadal那个窗体。这样就不会有问题了
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      Form2 := TForm2.Create(Application);
      if YourSelfProcedure() then
        Form2.ShowModal;
      else begin
        ShowMessage('...');
        Form2.Free();
      end;
    end;