客户端有一个DBGrid控件,一个DataSource,SocketConnection,Clientdataset还有一个DBEdit1控件,DBGrid和DBEdit1控件的Datasource都是连到Datasource控件,我现在遇到一个这样的问题就是当我修改DBEdit1中的值后,将鼠标移动其他控件,则修改后的值马上会在DBGrid1中显示,但我想DBEdit1修改后,对其进行加密,在DBGrid反应出的值是加密后的值。
我的意思也就是当修改了DBEdit1中的值后,在DBGrid1中显示的值是加密后的事。而更新到数据库的值也应该是加密后的值。
我只要将鼠标点击其他控件,则DBEdit1中的值就反应到DBGrid1中了。
我试着在DBedit1的事件onExit中加入对其值加密代码也没有用。在ClientDataSet的BeforePost中加入代码也没有用。在哪个事件中可以进行加密操作后再反应到DBGrid控件中?
不知哪位大侠能指点一下,谢谢!  

解决方案 »

  1.   

    为什么我在beforepost中加入代码没用?
    当光标在DBEdit控件时,鼠标点击另一个控件,则DBEdit控件所改的值是否就post到了ClientDataSet缓存中?如果没有post,那为何在DBGrid1中又可以反应出更改后的值?
      

  2.   

    TdataSource中有个OnUpdateData事件,试试这个事件?
      

  3.   

    建议在beforepost事件里处理加密。
      

  4.   

    你要加密的是些什么信息啊,要不然你就不用DBGride哦.用TStringGride控件进行显示啊,对数据库中的加密数据进行解密显示啊.你看行不哦