我在代表数据的表单上有一个TListView
和几个控件。当TListView
中的所选项目发生更改时,我想验证数据并将其保存回后备存储区,然后再更改为显示新记录。但似乎没有任何事件处理程序可以挂钩。事实证明,看起来很明显的OnChanging
,甚至包括一种中止变化的方法,并不是要改变你的选择;这是关于编辑当前项目。
在更改TListView
上的当前选择之前,我有什么方法可以进行验证吗?
答案 0 :(得分:2)
您要查找的活动是OnSelectItem
。对于要取消选择的项目,它会触发一次,对于正在选择的项目,它会再触发一次。
procedure SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
此处,Sender
是列表视图控件,Item
是正在选择或取消选择的项目,Selected
表示这是选择还是取消选择。
如果您想阻止选择更改,那么OnChanging
确实是您需要的事件。检查Change
参数。选择发生变化时,它的值为ctState
。将AllowChange
参数设置为False
以阻止更改。