在一个MDI应用程序中,有一些子窗口,当这些子窗口关闭时如何触发父窗口。 

解决方案 »

  1.   

    比如触发MDI框架form一个消息,通过这个消息框架form可以修改一些菜单的状态
      

  2.   

    关闭之前你可以传递给MDI窗体消息,触发他的事件
      

  3.   

    根据你需要触发的事件在父窗口中首先定义处理该消息的过程然后在子窗体关闭的时候向父窗体发送对应的消息啊。
    sendMessage(.........).
      

  4.   

    OnClose 应该会触发吧?呵呵
      

  5.   

    不明白你想做些什么
    可以在子窗口的关闭事件里面做 Onclose
      

  6.   

    procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := caFree;
      mainform.TB_open.Enabled:=true;
      mainform.TB_print.Enabled:=true;
      mainform.TB_save.Enabled:=true;
    end;试试这个 从我的代码里面截得
      

  7.   

    我习惯用事件驱动。MDI子窗体里申明一个事件,在主窗体里实现这个事件过程。然后在创建MDI子窗体的时候,赋值这个事件。
    MDI退出的时候,触发一下这个事件。例如:
    TMDIForm = ...
    private
      FOnMDIClose: TNotifyEvent;public
      property OnMDIClose: TNOtifyEvent read FOnMDIEvent write FOnMDIEvent;
    end;procedure TMdiForm.OnClose(...);
    begin
      if Assigned(FOnMDIClose) then FOnMDIClose(Self);
    end;在主窗体的代码中实现一个过程,就像给控件动态赋值一样,应该就可以了
      

  8.   

    也可以在子窗体关闭的时候
    取得父窗体的frame
    这样就是相当于操作父窗体了
    想干什么就干什么吧