由于需要,需要在主程序退出前,把所有的已创建的其它窗体关闭掉,程序再退出。
请大家给出方法,问题一解决即给分。

解决方案 »

  1.   

    你在创建窗体的时候,把owner都设为application,那么程序退出的时候会自动退出,释放资源的。
      

  2.   

    你的问题好奇怪,VCL的框架里就已经实现了所有子窗体都退出后application才会退出的。
      

  3.   

    for i := 0 to ComponentCount - 1 do
    begin
      if Components[i] is TForm then
        FreeAndNil(Components[i]);
    end;
      

  4.   

    前提是你在创建窗体的时候最好是用Create(nil)而不是Create(Application),不然可能会出错!
      

  5.   

    TO juliens(星星球) ,你的代码通不过呀。
    FreeAndNil(Components[i]);这一段代码有错误。
      

  6.   

    var i: Integer;
    begin
      for i := 0 to Application.ComponentCount - 1 do
      begin
        if Application.Components[i] is TForm then
          TForm(Application.Components[i]).Close;
      end;
    end;但是当你把所有窗口都关掉时Application也关掉了!
      

  7.   

    var
    dd:tform;
    begindd:=tform.CreateParented(self.Handle )
    dd.Show;
    end;这样可以
      

  8.   

    你创建窗体的时候,把OWNER设置为APPLICATION
      

  9.   

    你指的是MDI模式下关闭主窗体时关闭子窗体吧,可尝试以下代码
    procedure TFrmMain.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      for i:=0 to FrmMain.MDIChildCount-1 do
      begin
        FrmMain.MDIChildren[i].Close;
      end;
    end;
    请注意在子窗体的OnClose事件中写以下代码:
    Action:=Cafree;
      

  10.   

    TO juliens(星星球)
    怎么像这样的功能我就怎么不知道怎么做呢?您是如何学到今天这一步的,需要看一些什么书呵。
      

  11.   

    你在子窗體的close事件寫上:active:=cafree;