Delphi TcxGrid中的值更改后,如何启动事件处理程序?

Delphi TcxGrid中的值更改后,如何启动事件处理程序?,delphi,event-handling,devexpress,tcxgrid,Delphi,Event Handling,Devexpress,Tcxgrid,我有一个DevExpress TcxGrid,它的GridView的OnEditValueChanged事件附加了一个事件处理程序,该事件应该在其中一列中汇总一些数据。问题是,在将更新的值写入基础数据集之前,在验证期间触发此事件。我对TcxGrid不太熟悉。有人知道在数据集更新后是否有方法触发事件处理程序吗?如何使用DataSource.OnDataChange事件?是否在cxGrid中使用cxTableView或cxDBTableView 如果使用cxDBTableView,则可以在cxDBT

我有一个DevExpress TcxGrid,它的GridView的OnEditValueChanged事件附加了一个事件处理程序,该事件应该在其中一列中汇总一些数据。问题是,在将更新的值写入基础数据集之前,在验证期间触发此事件。我对TcxGrid不太熟悉。有人知道在数据集更新后是否有方法触发事件处理程序吗?

如何使用DataSource.OnDataChange事件?

是否在cxGrid中使用cxTableView或cxDBTableView


如果使用cxDBTableView,则可以在cxDBTableView属性中链接数据源的datasource.onchange中设置事件。(cxDBTableView.datacontroller.datasource)

我会选择skamradt:更仔细地寻找符合您期望的事件

否则,您可以在确保数据已初始化后插入事件:

 procedure TMyGrid.MyProc_OnDataLoaded( Sender : TObject ); //I made up this event, I'm not sure it exists
 begin
   Self.OnEditValueChanged := MyProc_OnEditValueChanged;
 end;

我强烈建议您不要将此作为常规的开发习惯(通过代码将事件集设置为另一个回调是调试地狱的可靠方法),但如果您真的找不到任何其他方法来执行此操作…

我不确定这是否正是您所需要的,但是,我发现网格的ImmediatePost选项对于需要更新摘要的情况非常有用——它隐藏在cxView的Data Controller属性下。这使得网格的行为类似于电子表格——只要用户在单元格中按enter键或tab键,记录就会被发布。那么我可能会从数据集的AfterPost事件中总结事件


(您可能已经知道这一点,但gridview本身内置了许多非常有用的摘要选项-查看列的摘要属性,并确保在ViewOptions中将ShowFooter设置为true-因此,如果摘要是相对简单的总计、平均值或类似值,则让grid完成所有操作,并节省一些工作。)

一个简单的摘要是行不通的。不过,我喜欢立即发布的想法。我今天早上上班时会查看一下,看看它是否符合我的需要。不。事实证明,在事件处理程序启动之前,它不会发布。