情况是这样,bcb5上安装了enlib4版本的控件包,使用dbgrideh控件显示数据,在底部添加了合计行,到此一切正常。现在我想按照一定条件,对其中的符合条件的记录求和,于是按照网上和帮助文件的说明,将sumlist属性中的ExternalRecalc设为True,然后在OnSumListRecalcAll事件中添加了按条件求和的代码。奇怪的是程序并不运行该事件函数,设置了断点也没用。于是跟踪进DBGridEh和DBSumList、DBSumProducer,发现事件函数最终由RecalaAll函数调用,而RecalaAll函数都在一些不相关的过程中调用。有人遇到过此类问题么补充:在dbgrideh中修改数据,增删记录,都不会调用我写的事件函数,一步一步跟踪进源代码,发现RecalcAll在AfterOpen和AfterScroll等过程中调用,而未在AfterPost等中调用。毕竟是delphi的原生控件,这里人气旺些,求支招