解决方案 »

  1.   

    procedure tformchild.formclose(sender:tobject;var:action:tcloseaction);
    begin
     action:=cafree;
    end;
    这段代码放在哪了才能实现子窗口的退出,而不是最小化
      

  2.   

    Form的Envents中的OnClose事件中。
      

  3.   

    这个是关闭一般窗体的代码,如果是子窗体则还需要增加
    procedure tformchild.formclose(sender:tobject;var:action:tcloseaction);
    begin
     action:=cafree;
    formchild:=nil;
    end;参考一下:
    ********mdi子窗体的动态建立*******
    mdi父窗体的formstyle为fsmdiform
    mdi子窗体的formstyle为fsmdichild
    在project中删除不启动的mdi子窗体//mdi子窗体:
    procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      action:=cafree;
      form3:=nil;
    end;//mdi父窗体:
    procedure TForm1.fdf1Click(Sender: TObject);
    begin
      if not assigned(form2) then
      begin
       form2:=Tform2.Create(Self);
       //form2.Visible:=True;
       form2.Show;
      end;
    end;
    //以上可以打开多个mdi窗体//只能打开一个mdi窗体
    try
      if application.MainForm.MDIChildCount>0 then
         activemdichild.Close;
      finally
         TForm2.Create(Self);//这是子窗体,MDIChild窗体自己创建自己显示,不用Show
      end;
    //mdi主窗体运行时最大化
     把Form.WindowState属性设置成wsMaximized