例如dbgrid有个column是显示名称的,光标进入后改成显示编码,光标移出后又显示成名称,有人能做到吗?很急啊,大家帮帮忙吧!

解决方案 »

  1.   

    双击dataset,add all..在选择的字段里面有procedure TForm1.Table1Last_NameGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    beginend;
      

  2.   

    谢谢,但dbgrid移到下一行的时候,原来那行也应该改,但gettext事件没办法解决。
      

  3.   

    dataset还有个afterscroll事件,响应滚动条移动
      

  4.   

    procedure TForm1.Table1BeforeScroll(DataSet: TDataSet);
    beginend;
      

  5.   

    procedure TForm1.Table1BeforeScroll(DataSet: TDataSet);
    beginend;
      

  6.   

    在dbgrid中横向移动,按照gettext方法就可以实现,这个我知道,但纵向移动的时候gettext方法就不行了,因为上一行要复原,下一行要改变显示,这两个是矛盾的。不知道名位高手是否理解我的想法?
      

  7.   

    应该用ADOQuery的beforescrool与afterscroll事件更新DBGrid
      

  8.   

    问题解决了!用了我一个晚上加一个上午的时间啊!
    方法是:
    1、重写colenter和colexit事件,在colenter事件中为相应的field加gettext事件,在colexit事件中再去掉。
    2、dbgrid对应的dataset的afterscroll事件中执行colenter事件。谢谢各位的提示,结帐散分!
      

  9.   

    结帖
    jinjazz(人雅的标记--落寞刺客) (40)
    drift1981(一包香烟,一把吉他,浪迹天涯!) (30)
    zwb666(zwb) (20) 
    jiajie(Jacky Zhao)(10)