本帖最后由 porchen 于 2011-11-14 17:38:23 编辑

解决方案 »

  1.   

    Close 即可以释放掉Form占用的内存, 可以参看 VCL 源码:
    procedure TCustomForm.Close;
    var
      CloseAction: TCloseAction;
    begin
      if fsModal in FFormState then
        ModalResult := mrCancel
      else
        if CloseQuery then
        begin
          if FormStyle = fsMDIChild then
            if biMinimize in BorderIcons then
              CloseAction := caMinimize else
              CloseAction := caNone
          else
            CloseAction := caHide;
          DoClose(CloseAction);
          if CloseAction <> caNone then
            if Application.MainForm = Self then Application.Terminate
            else if CloseAction = caHide then Hide
            else if CloseAction = caMinimize then WindowState := wsMinimized
            else Release;
        end;
    end;
      

  2.   

    2楼的代码,我看不懂,如果close可以释放内存是不是下面的代码中的Release也可以不必加上了?
    procedure TForm2.Button1Click(Sender: TObject);
    begin
      form2.Close;//form2为Available forms
      form2.Release;//必须得加上,要不不能释放动态创建的form所占的内存。
    end;