它和程序主窗体的close有何区别?

解决方案 »

  1.   

    正常情况下可以,CLOSE只是不显示了,不代表内存中没有这个FORM了
      

  2.   

    windows的内存管理:当一个应用程序退出时,windows应该会回收它所占用的内存空间,
    所有使用application.Terminate可以使程序使用的资源都正常释放。主窗体的Close方法,相当于关闭应用程序
      

  3.   

    Terminate的实质就是释放程序所占用的所有资源
      

  4.   

    application.Terminate
    它会通知自己所拥有的对象,form1,form2,...析构,
    form们在通知自己拥有的对象,比如edit,label等等析构,
    如此递归,资源就都自动回收了。
      

  5.   

    对,同意nicolas2003(落花含情,流水有意) 的说法
      

  6.   

    procedure TApplication.Terminate;
    begin
      if CallTerminateProcs then PostQuitMessage(0);
    end;
    //***************************************
    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;有什么区别自己看:)