一下两段代码都可以关闭程序,有什么分别吗?
procedure Tform.Button1Click(Sender: TObject);
begin
  Application.Terminate;
end;procedure Tform.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;
是不是关闭后必须按如下销毁窗口
procedure Tform.FormDestroy(Sender: TObject);
begin
  form := nil;
end;

解决方案 »

  1.   

    对于关闭程序来说,第二段是多余的。
      form := nil; 没有销毁的意思。不过你这样做了之后,可以通过 if form = nil 来作些判断。
      

  2.   

    procedure Tform.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
      Action := caFree;
      Form1:=nil; 
    end;窗体关闭这样做就可以了,把Form1变量置为nil,否则引用会出错。
      

  3.   

    如作为模式窗口,应该如pengxuan(追梦人) 所述为好,其他情况楼主的第二个函数就已经足够了,你的第一个函数是关闭整个应用程序,第二个是关闭一个窗体,如果这个窗体也是主窗体,和第一个函数的作用差不多,否则,是不会关闭整个应用程序的.
      

  4.   

    procedure Tform.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
      Action := caFree;
    end;
    这样就可以了。
      

  5.   

    delphi中Main Form的Close意味着整个Application的Terminate