【发布时间】:2015-02-01 05:27:48
【问题描述】:
我正在尝试在TVirtualStringTree 中创建一个类似于以下内容的视图:
在上面的示例中,我展示了我想要达到的一些可能的场景。 FolderA 有粗体文本,之后是同一节点中的红色非粗体文本。我正在寻找制作这种输出的方法。
但是,如果这太难或太难创建,我会很高兴 FolderB 或 FolderC 类型的输出 - 可能有 2 列,一个包含文件夹名称,另一个包含里面的文件数。
FolderD 在这里只是一个没有文件的文件夹的示例以及该文件夹的输出(文本是非粗体并且没有数字)。
我正在寻找如何制作这种效果的任何方向,因为 VirtualTreeView 似乎每个节点只能有单一颜色或粗体设置。任何提示或建议如何向 FolderA 或 FolderB 或 FolderC 方向移动都非常感谢,所以我有一个起点。欢迎使用 Delphi 或 C++ Builder 示例(不过最终代码将在 C++ Builder 中)。
【问题讨论】:
-
您可以处理
OnMeasureTextWidth事件以提供整体文本宽度并在OnDrawText事件处理程序中呈现这两个文本。但我个人会使用 2 列,这样用户可以随时看到计数。 -
@TLama 我同意 2 列确实有其优势,我很可能会在以后切换到该列。但此时我需要一个快速的解决方案,
toShowStaticText正是这样做的。很遗憾,我只能接受一个答案,因为您的两个答案都是很好的解决方案。 -
-
@TLama 好的,也许我不够清楚 - “文件夹 A”是首选,如果 A 不起作用,B 和 C 变体只是计划 B 或 C。 “快速”部分是我不需要引入一些额外的代码来处理列(不是 VirtualTree 代码,它确实相当简单,而是一些其他的额外内容)。我真的很感谢您提供的答案,如果您将其添加为附加答案,我肯定会支持它(我相信其他人也会更喜欢它而不是我的偏好,所以它肯定会得到更多的支持!)。
标签: delphi c++builder virtualtreeview tvirtualstringtree