我正在学习制作虚拟模式的列表视图。目前我的问题是我无法在列表视图中使用复选框。我已经阅读了来自http://delphi-kb.blogspot.com/2011/02/draw-checkboxes-in-virtual-mode.html的链接,但我没有看到任何复选框。有什么想法吗?
我正在学习制作虚拟模式的列表视图。目前我的问题是我无法在列表视图中使用复选框。我已经阅读了来自http://delphi-kb.blogspot.com/2011/02/draw-checkboxes-in-virtual-mode.html的链接,但我没有看到任何复选框。有什么想法吗?
OwnerData
时,你必须自己绘制复选框(如问题中链接的文章所述)。OwnerDraw
设置为True
(除了OwnerData
外,这两个是独立的标志!),并在OnCustomDrawItem
事件中自己绘制复选框。OwnerDraw = False
的情况下,OnCustomDrawItem
事件也会被触发。
http://docwiki.embarcadero.com/VCL/XE2/en/ComCtrls.TListView.OnCustomDrawItem
更新2:OwnerDraw = False
和CheckBoxes = True
时有效。DrawCheckMark(FileListMenu.ListView1, Item, Item.Checked);
中的 FileListMenu
是什么?我只是在我的代码中加入了 DrawCheckMark(ListView1, Item, Item.Checked);
。Jens,我之前一直在使用 TVirtualTree
!但是如果我必须将我的程序移植到 x64 上,就不确定 TVirtualTree
是否与 DXE2 x64 兼容。我制作了一个简单的演示,使用以上链接中的代码,如果您还有另外五分钟,请查看一下。http://uploading.com/files/371emeb4/demo.zip/ - Charles SungkonoListView1Data
中添加Item.Checked := True
,则它将被绘制为选中状态。所以一切都按预期工作。 - Jens Mühlenhoff