如题,先谢谢了,最好有代码

解决方案 »

  1.   

    如果你是想要响应单元格的内容改变事件,在query控件上用右键添加所有的字段,然后响应所需要字段的onchange事件就可以了,这个onchange事件是在改完离开单元格后才触发的。
      

  2.   

    可能要自己在dbgrid里面画个dbedit就可以了!
      

  3.   

    这两个事件
    DBGrid1ColEnterDBGrid1ColExit
      

  4.   

    代码判断显示ZGBH的字段失去焦点
    procedure Tfrm_bxtz.DBGridEh3ColExit(Sender: TObject);
    begin
      if not (Query3.State in [dsInsert]) then exit;
      if Uppercase(DBGridEh3.SelectedField.FieldName)='ZGBH' then      //编辑职工编号,显示职工姓名
      begin
        if Query3.FieldByName('zgbh').AsString='' then exit;
        QTemp.Close;
        QTemp.Sql.Text:='select xm from rdjbda where '+
             'zgbh='''+Query3.FieldByName('zgbh').AsString+'''';
        QTemp.Open;
        Query3.FieldByName('xm').AsString:=Qtemp.FieldBYName('xm').AsString;
      end;
    end;
      

  5.   

    上述回答只解决了列间切换时的事件触发,但在同一列上切换行时不会触发,我这些代码是在表格控件中写的,如用动态指定处理过程的方法来处理表格控件的DataSet的AfterScroll事件控制行,控件做成后,如在客户端的程序中需要用到控件DataSet的AfterScroll事件,则会与控件中的事件代码互斥,即只执行其中的一个
      

  6.   

    最好的方法:使用相应数据集的AfterScroll事件,当单元格失去焦点的时候,一定会有AfterScroll事件发生,另外,你还可以通过BeforeScroll事件得到焦点前的数据。
      

  7.   

    zzzl(这个屠夫心狠手辣) 
    怎样在表格控件内部继承DataSet的AfterScroll事件,用DataSet.AfterScroll:=Procedure;
    的方法后,在控键外部再次定义该事件时会覆盖掉控间内的Procedure。
    望明示
      

  8.   

    把所有的事件全部写在Procedure里面就可以了
      

  9.   

    我刚才吃饭去了,不知 linzhisong(無聊) 兄弟吃过饭了没有 ^_^
      

  10.   

    ONgettext 和ONSettext事件下就可以
      

  11.   

    LZGUI(威靈) 
    怎么在表格控件中继承这两个事件又不会导致其与外部定义的事件相互覆盖?
      

  12.   

    改写TCustomDBGrid,将属性  property InplaceEditor: TInplaceEdit read FInplaceEdit;
    改成public ,并为其添加oncellexit事件,并将其公布为oncellexit 事件属性。也许麻烦一点,但可以一劳永逸。