mdi子窗口关闭时怎么触发父窗口的某一个函数?

解决方案 »

  1.   

    百度 delphi sendmessage 
    百度 delphi wndproc
    百度 delphi 自定义消息
      

  2.   

    先将主窗口和子窗口放在一个工程里,否则得用COM了。
      

  3.   

    创建一个主窗口TFORM类,然后直接调用,OK
      

  4.   

    创建一个主窗口TFORM类,然后直接调用,OK
      

  5.   

    我昨天也找了个类似的例子,但怎么似乎SENDMESSAG接收不到信息呢?
    ---------------------------------------------------------------------------
    子窗口所处BPL工程
    ---------------------------------------------------------------------------
    Const 
    WM_MINE=WM_USER+100;
    procedure TSysBaseBrowseForm.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
      mainForm := FindWindow(nil,'test); 
    if mainForm = 0 then showError('没有找到!');//窗体是找到了的
      Sendmessage(mainForm,WM_MINE,0,0);  
    end;
    ----------------------------------------------------------------------
    主窗口所处BPL工程
    -----------------------------------------------------------------------
    Const 
    WM_MINE=WM_USER+100;
    type .... private
    procedure Mine(var msg:TMSG);message WM_MINE;
    begin
      ShowMessage('ddd');
    end;
    ddd就是没有弹出来?
      

  6.   

    你看看你获取的句柄是不是对的。
    其次可以试试RegisterWindowMessage这个函数注册一下,具体的查看MSDN
      

  7.   

      main := FindWindow(nil,'test');
      Sendmessage(main,WM_MINE,0,0);
      Sendmessage(FindWindow(nil,pchar('test - ['+Caption+']')),WM_MINE,0,0);
    知道问题出在哪了,前面看到别人BLOG上说FindWindow(nil,'test');<>0为找到窗体,但测试发现似乎并不是这样,
    所以要发两条,
    -------------------------------------------
    Sendmessage(main,WM_MINE,0,0);再问下能否打此窗口的名称或其它东东做参数传进去?
    (var msg: TMSG);这里的MSG怎么用呢?