请教
delphi7中是MDI主窗体中是否有 当子窗体被激活时的事件
我想在MDI子窗体被激活或关闭时,判断是是哪个窗体被激活了.
请问是否有这样的事件.或者能怎么用其他的方法实现这样的功能!
谢谢!

解决方案 »

  1.   

    delphi有这个事件吗,.net就有的.可是DEPHI7我就没有看到有这个事件啊
      

  2.   


    Application.MainForm.ActiveMDIChild
      

  3.   

    我是想当有子窗体被激活时相发的事件.再去判断相应子窗体的权限,来使用主窗体上不同的按钮为可用或不可用.
    在DELPHI中..这样知道如何实现
      

  4.   


    主要思路:在子窗体的OnActivate事件中向主窗体发送消息,主窗体收到消息后根据权限DO.....
      

  5.   

    再提供一个方法:当子窗体创建时把主窗体ToolBar指针传入,在子窗体的OnActivate事件中对其按钮设置是否可用
      

  6.   

    这样的话每个子窗体都要去写,系统是分工去做的.要是有忘写了这部份..那就判断不了了..
    在.net中是能够实现在.在DELPHI不知道用什么方法
      

  7.   

    主要思路:在子窗体的OnActivate事件中向主窗体发送消息,主窗体收到消息后根据权限DO.....
    控制子窗体的按钮的禁用启用,最好也在子窗体中使用TActionList实现。子窗体也是可以访问主窗体的(Application.MainForm)
      

  8.   

    wm_mdi开始系列消息就可以很好的做到。可以做到激活,焦点转移,创建,销毁消息处理。
    不要说不会用message处理。
    其实vcl也包装这类消息很好的。
    TScreen.OnActiveFormChange事件可以很好的处理。处理的时候判断下是不是mdi子窗体就可以了。
    vcl自动初始化了个全局的screen对象。
      

  9.   

    12楼兄弟说的就可以
    自己截取MDI客户区消息处理
    处理WM_MDIGETACTIVE消息,这个消息里会有子窗体句柄。
    查下MSDNMDI多文档结构客户区消息
      

  10.   


    Application.MainForm.ActiveMDIChild
    最好用:继承(inherited;)