使用图像对列表视图中的项目进行分组

时间:2013-12-10 02:21:56

标签: delphi listview delphi-7 grouping

我正在使用this code对列表视图中的项目进行分组。但我想要的是组标题的图像大小将保持“16x16”,而组内项目的图像将具有不同的大小,例如50×50。

我如何为Delphi 7做到这一点?

1 个答案:

答案 0 :(得分:3)

文章代码只是通过操作普通列表项来模拟组,因此组标题图像和项目图像使用相同的TListItem.ImageIndex属性,因此将访问相同的图像列表,因此他们必须使用相同大小的图像。

标准的Win32 ListView控件支持为组标题和列表项使用不同的图像列表(仅限Vista +)。

我建议放弃文章代码,然后:

  1. 直接使用Win32 API启用ListView的native grouping features。仅仅因为Delphi 7的TListView组件本身不支持分组API并不会阻止您手动使用它。您可能需要在代码中手动定义相关的记录类型和消息ID,这就是全部。

  2. 切换到SoftGem's Virtual TreeView(支持Delphi 7)以创建具有可展开/可折叠项目的圆柱列表视图。单个树节点可以具有不同的高度,并且它们可以是所有者绘制的,因此我认为为组和项目显示不同大小的图像并不困难。