我有一个 FireMonkey 应用程序,它显示 TTreeView 中的项目列表。有些项目代表叶对象,其他项目代表容器。 我的想法是不要一次预加载整棵树。我想仅在用户单击特定容器项目后才将子项目添加到容器中。
为了实现这一点,我需要向用户展示相应的项目是一个容器:
有没有办法使用样式、RTTI 等来显示特定 TTreeViewItem 的扩展器而不添加任何子项?
我使用的是 Delphi XE7。
最佳答案
有一个常见的技巧,即在每个未展开的节点中使用“虚拟”节点。每个具有项目的节点将只有一个空的子节点。当用户展开该节点时,检查该虚拟节点。如果有,请将其删除,然后填写真实项目。我不太确定 Firemonkey 和 VCL 中的 TreeView 有多相似,但概念应该是相同的。
关于delphi - 显示 TTreeViewItem 的 Expander 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26876178/