不一定是dbnavigator,就算是自己做也会遇到以下问题:当修改了文件框中的数据时,dbnavigator会即时更改button的状态,未修改之前,保存\取消为禁止,修改之后,保存\取消为可动,这中间应该是通过数据控件ADOQUERY\ADOTABLE来控制的,现在就是我不知是这种控件的哪个事件来响应的?请教高手...

解决方案 »

  1.   

    vcl不是开源的么,看看源代码不就全知道了。dbnavigator重写了TDatalink的dataevent,再看看dataevent的是由谁触发的。
      

  2.   

    看了看源码,路线错综复杂:connectevent->dataevent->updatestate->setediting->editingchanged,而Tdatalink的editingchanged是空的.
    然后再看TNAVdatalink的editingchanged里面的代码:
      if FNavigator <> nil then FNavigator.EditingChanged,没错调用的TNAVIGATOR中的editingchanged谢谢bluekitty(不来CSDN好多年)