我想作几个数据窗体,其中包括新增、修改、删除、查询、保存等功能,想做到有以下功:
  1 将这些功能全部列入工具栏中,放置于MDI窗口上,要求可以移动;
  2 当单击工具栏中的按钮时,要求调用的是当前子窗口上相应的功能,列如当单击保存时,要调用当前子窗体(数据编辑)中的保存功能,具体代码可写在子窗体中(即一个用来保存当前编辑数据的SAVEDATE的过程),类似PB中的触发窗口中自定义事件一样)。
   注:各窗体中的过程中的名称可定义成一样。   没解决与不太清楚的问题如下,请各位大侠帮小弟一下,谢谢!   1、MDI窗口中的工具栏写的代码如何自动调用当前窗体中相对功能。
   2、MDI窗口是否须引用这些子窗体。
   3、子窗口中如何设置工具栏中某些功能是可用与不可用。
   4、具体须用到哪些控件。

解决方案 »

  1.   

    1. 
    a)主MDI主窗体中用:
      SendMessage(ActiveMDIChild.Handle, WM_FUNC, 参数一,参数二);
    // WM_FUNC 是自定义的全局变量
    b)在MDIChild子窗体中用(捕捉WM_FUNC):
      procedure WMFuncMessage( var Msg: TMessage); message WM_Func;
      然后:
    procedure TForm1.WMFuncMessage( var Msg: TMessage);
    begin
      with Msg do
      begin
        case WParam of
          参数一: Do ....
          iLoad:    DoLoadAction;
          iDelete:  DoDeleteAction;
           .....
        end;
      end;
    end;2. 用上面的方法, 无需引用子窗体。
    3. 在MDIChild子窗体的OnActivate事件中, 用同样的方法向主窗体发送自定义消息, 在主窗体中收到消息后进行工具栏的Enable和Disable.
    4. 用一般的工具控件(Delphi自带)就行了。