Delphi 虚拟列表视图无法正常工作

7ajki6be  于 2023-06-05  发布在  其他
关注(0)|答案(1)|浏览(168)

我有一个简单的测试程序,我试图让一个虚拟列表视图工作。但它不会正常工作,因为当TListview OwnerData被启用时,OnChange不再被调用时,一组项目在UN-selected。结果,我得到了一组越来越大的虚拟项,它们被标记为Selected,但它们在ListView本身中没有被选中。
但是,在第二个不在Ownerdata中的ListView中,所有UnSelect项都会导致OnChange,这是可以预期的。
我已经研究了好几天了,但是我不能让它工作。如果有人愿意看一看,看看我可能做错了什么,那就太好了,因为我真的不认为问题出在我自己的代码上……
完整的测试程序源代码可以在这里下载(200 k):
https://sartrack.nz/temp/VirtualListViewTest.zip
谢谢,巴特

wz8daaqr

wz8daaqr1#

正如大卫所说,这是设计的。在虚拟模式下,您需要连接OnSelectItem事件,以获得有关项目选择状态更改的通知。
如果您允许在视图中进行多项选择,则OnSelectItem是不够的,OnDataStateChange也必须进行布线。然后强制使用这两个事件,因为每个事件仅覆盖用例的子集。

相关问题