如何在TListView中所选项目更改之前(之前)进行响应?

时间:2014-02-10 19:27:45

标签: delphi vcl

我在代表数据的表单上有一个TListView和几个控件。当TListView中的所选项目发生更改时,我想验证数据并将其保存回后备存储区,然后再更改为显示新记录。但似乎没有任何事件处理程序可以挂钩。事实证明,看起来很明显的OnChanging,甚至包括一种中止变化的方法,并不是要改变你的选择;这是关于编辑当前项目。

在更改TListView上的当前选择之前,我有什么方法可以进行验证吗?

1 个答案:

答案 0 :(得分:2)

您要查找的活动是OnSelectItem。对于要取消选择的项目,它会触发一次,对于正在选择的项目,它会再触发一次。

procedure SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);

此处,Sender是列表视图控件,Item是正在选择或取消选择的项目,Selected表示这是选择还是取消选择。

如果您想阻止选择更改,那么OnChanging确实是您需要的事件。检查Change参数。选择发生变化时,它的值为ctState。将AllowChange参数设置为False以阻止更改。