当用户改变Column是否显示时(也就是DBGRIDEH的indicator中的那个是否让column显示的那个菜单),就触发一段代码.

解决方案 »

  1.   

    你在那里控制indicator的显示,就在后面写需要执行的代码,
    难道你还想找出它触发的事件啊?比如显示时:
    DBGridEh1.Options:=DBGridEh1.Options+[dgindicator];
    showmessage('在这里写显示时执行的的代码');关闭时:
    DBGridEh1.Options:=DBGridEh1.Options-[dgindicator];
    showmessage('在这里写关闭时执行的的代码');
      

  2.   

    楼上这位朋友可能误解我的意思了...
    这样吧..换个角度说吧...DBGRIDEH 有一个Column ,fieldname是:PRD_NO,
    FORM1上有一个EDIT,NAME是:EDIT_PRD_NO
    我要实现的效果是:
    当用户使DBGRIDEH的PRD_NO列为不显示时,EDITR的EDIT_PRD_NO也跟着不显示.
    当用户使DBGRIDEH的PRD_NO列为显示时,EDITR的EDIT_PRD_NO也跟着显示...
    不知道我说清楚了没....
      

  3.   

    还不是一样的道理,你总该有一个动作是做列的显示与不显示吧
    在那里控制,就在那里写要实现EDIT效果的代码了比如,Button1控制'列1'是否显示:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      vBool:Boolean;
    begin
     vBool:=DBGridEh1.FieldColumns['列1'].Visible;
     DBGridEh1.FieldColumns['列1'].Visible:= not vBool;
     Edit1.Visible:=not vBool;
    end;若是Column或者Edit很多,判断的条件多,要看你的程序是怎么设计的了,自己优化代码,
    可以集中写成一个过程或者函数,然后调用
      

  4.   

    还不是一样的道理,你总该有一个动作是做列的显示与不显示吧 
    在那里控制,就在那里写要实现EDIT效果的代码了 比如,Button1控制'列1'是否显示: 
    =====================
    汗,如果用button去控制Column的visible,我就不会提到这里来了...
    我的意思是说:DBGRIDEH带的那个dgindicator有一个控制Column隐藏/显示的菜单....我是想通过这个菜单去控制撒....或者再换个角度说吧...
    当改变column的visible时,会触发DBGRIDEH的什么事件?
      

  5.   

    记得俺原来是把所有的列名列出来(Checkbox),让用户自己去选择显示哪些,不显示哪些……eh是带源代码的,楼主可以修改一下他的代码,向你的窗口发送一个自定义消息。