我用的是
Application.CreateForm(tForm1,Form1);
Form1,Showmodal;
Form1,Free;
怎样,各位给个意见????

解决方案 »

  1.   

    1、如果窗口是主窗口,内存当然被释放了。
    2、如果窗口不是主窗口,Close时,BCB仅仅隐藏该对话框,要想真正释放内存
       必须在FormClose中编码:
       void __fastcall TForm1::FormClose(...)
       {
         Action=caFree;
       }
      

  2.   

    提醒功能,好像rxlibrary有吧close对于任何窗口而言相对于show:=false当然当然
      

  3.   

    为什么我的4个依次提醒的窗口,却只出来2个呢?在主窗口中创建第一个提醒窗口
    procedure TMainFrm.FormShow(Sender: TObject);
    var
      NtTrainFrm:TNtTrainFrm;
    begin
      NtTrainFrm:=TNtTrainFrm.Create(Application);
      try
        NtTrainFrm.show;
      except
        halt;
      end;
    end;在第一个提醒窗口中创建第二个提醒窗口(按下Bitbtn2按钮第一个窗口释放,第二个提醒窗口弹出)
    procedure TNtTrainFrm.BitBtn2Click(Sender: TObject);
    var
      NtMemberFrm:TNtMemberFrm;
    begin
      close;
      NtMemberFrm:=TNtMemberFrm.Create(Application);
      try
        NtMemberFrm.show;
      except
        halt;
      end; 
    end;
    第一个提醒窗口的释放通过关闭窗口实现
    procedure TNtTrainFrm.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action:=cafree;
    end;以上有何不对,请指教
      

  4.   

    1问题、直接CREATE一个自己写的提醒FORM,然后再SHOWMODAL它,或者干脆就用SHOWMESSAGE/MESSAGEBOX都可以提醒啊。
    2问题:调用一个窗口后,close当然没有释放内存,你要在调出的FORM的ONCLOSE事件中写入action:=cafree;才能释放内存
    3问题:当然是不自动创建,在程序中创建比较好一些喽,不然系统资源会让你的程序消耗好多,如果能把一些FORM写在DLL中调用也可以。
      

  5.   

    procedure TNtTrainFrm.BitBtn2Click(Sender: TObject);
    var
      NtMemberFrm:TNtMemberFrm;
    begin
      close;
      NtMemberFrm:=TNtMemberFrm.Create(Self);//改之
      try
        NtMemberFrm.show;
      except
        halt;//这样不好的:)
      end;
      

  6.   

    请问 ihihonline(小小->充电中……) 为什么不好?
    我想如果系统有问题直接退出!
      

  7.   

    procedure TMainFrm.SpeedButton12Click(Sender: TObject);
    var
      NtTrainFrm:TNtTrainFrm;
      NtMemberFrm:TNtMemberFrm;
      NtStatMonthFrm:TNtStatMonthFrm;
      NtRetriewFrm:TNtRetriewFrm;
    begin         
      NtTrainFrm:=TNtTrainFrm.Create(self);
      NtMemberFrm:=TNtMemberFrm.Create(self);
      NtStatMonthFrm:=TNtStatMonthFrm.Create(self);
      NtRetriewFrm:=TNtRetriewFrm.Create(self);
      try
        NtTrainFrm.showmodal;
        if  NtTrainFrm.ModalResult=mrCancel  then
        begin
          try
            NtMemberFrm.showmodal;
            if  NtMemberFrm.ModalResult=mrCancel  then
            begin
              try
                NtStatMonthFrm.ShowModal;
                if NtStatMonthFrm.ModalResult=mrCancel then
                begin
                  try
                    NtRetriewFrm.ShowModal;
                    if NtRetriewFrm.ModalResult=mrCancel then
                                        
                  finally
                    NtRetriewFrm.free;
                  end;
                end;
              finally
                NtStatMonthFrm.free;
              end;
            end;
          finally
            NtMemberFrm.free;
          end;
        end;
      finally
        NtTrainFrm.free;
      end; 
    end;这样可以吧?