首先:是否没有TChildForm这个类,要自己定义的吧。那是否是这样定义:
Type
    Tchildform:Tform;(还是TForm1,Form1是主窗体)??? 其二:
我希望动态的建立子窗体。那子窗体的释放可以在主窗体的OnClose里设置吗?
我在主窗体的OnClose中是这样写的:
var MYForm:TForm;
begin
     If (Sender = MyForm)And(MyForm.FormStyle = fsMDIChild) Then
         Action := CaFree;
End;
好象不行,我把TChildForm定义成TForm1的子类时,关闭是可以了。但子窗体好象继承了主窗体的控件(比如Button),这是我不想要的结果,那怎么办呢?
万分感谢你的帮助。

解决方案 »

  1.   

    主窗口获取mid子窗口的方法是
    for I := MDIChildCount - 1 downto 0 do
        MDIChildren[I].close
    delphi对于是否mid窗口是在窗体的formStyle里面设置
      

  2.   

    TO shuyi:
    我想只关掉其中一个子窗体啊(多个动态子窗体啊)
      

  3.   

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        Action:= caFree;
    end;
    Form1是一个MDI子窗体
      

  4.   

    借用:
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        Action:= caFree;
    Form1:=nil;
    end;
    Form1是一个MDI子窗体
      

  5.   

    其实是我表达不清楚。
    我想重新说明一下问题:
    我想在一主窗体(MDIFORM)中,动态产生几个子窗体(MDIChildeForm),希望:
    在运行期间关掉其中的一个子窗体并释放,
    而不是一下子关掉所有的子窗体。
    我应该如何设计呢?
    我想这贴子也已经好久了,可能不会再有朋友来光顾了,呵呵,
    不管怎么样,进来的都有分,谢谢大家