Delphi 更改ListView所选项目时要调用的事件?

Delphi 更改ListView所选项目时要调用的事件?,delphi,vcl,delphi-10.1-berlin,Delphi,Vcl,Delphi 10.1 Berlin,每当ListView中的选定项发生更改时,我想运行一次过程。最明显的选择是OnSelectItem,但当用户从一个选定项目移动到另一个项目时(使用鼠标键或箭头键),它会被调用两次。类似地,在项目之间移动时,OnChange会被调用三次 在这些条件下是否只生成一次事件?OnClick只生成一次,但不包括使用箭头键在项目之间移动等。您可以使用OnSelectItem这样做 记住最后选择的项目 当启动选择项时,检查当前选择的项是否与您记忆中的项不同 如果是,请执行任务,并记下新选定的项目 VCL或F

每当ListView中的选定项发生更改时,我想运行一次过程。最明显的选择是OnSelectItem,但当用户从一个选定项目移动到另一个项目时(使用鼠标键或箭头键),它会被调用两次。类似地,在项目之间移动时,OnChange会被调用三次


在这些条件下是否只生成一次事件?OnClick只生成一次,但不包括使用箭头键在项目之间移动等。

您可以使用
OnSelectItem
这样做

  • 记住最后选择的项目
  • 当启动选择项时,检查当前选择的项是否与您记忆中的项不同
  • 如果是,请执行任务,并记下新选定的项目
VCL或FMX pleaseIt这是一个VCL应用程序。OnSelectItem事件会告诉您正在更改的项目以及它是被选中还是未被选中。因此,获取两个事件触发器是有意义的,一个用于未选中的旧项,另一个用于正在选中的新项。OnChange事件也会因状态更改而被触发,因此它被多次触发是有意义的,tooThanks,@Remy。。。您的解决方案与公认的解决方案一样有效,即,
如果选中,则//执行某些操作非常有效。谢谢你,大卫。