我使用VirtualStringTree(VST)来显示分组的数据,标题详细信息。我需要有一个选项来允许用户展开,折叠标题以查看详细信息,在某些情况下,我需要将数据显示为静态视图,它们不能展开,折叠,只能看到完整的展开树:
下面是用户可以展开、折叠节点和子节点的示例:
这里是一个例子,当我想阻止用户展开/折叠节点,总是看到所有展开(或任何显示):
在这个测试中,我通过“允许展开/折叠”复选框进行控制。
我通过添加以下内容来防止扩展和崩溃:
Allowed:=CheckBox1.Checked;
进入OnCollapsing/OnExpanding:
procedure TMainForm.VSTCollapsing(Sender: TBaseVirtualTree;
Node: PVirtualNode; var Allowed: Boolean);
begin
Allowed:=CheckBox1.Checked;
end;
procedure TMainForm.VSTExpanding(Sender: TBaseVirtualTree;
Node: PVirtualNode; var Allowed: Boolean);
begin
Allowed:=CheckBox1.Checked;
end;
我还显示/隐藏基于复选框的树线
procedure TMainForm.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
VST.TreeOptions.PaintOptions:=VST.TreeOptions.PaintOptions + [toShowTreeLines]
else
VST.TreeOptions.PaintOptions:=VST.TreeOptions.PaintOptions - [toShowTreeLines];
end;
当我想阻止用户展开、折叠节点时,如何隐藏这个小加号,有什么建议吗?
编辑:
为了消除与表单图标的混淆,这是Virtual Treeivew 5演示库中的演示项目。IDE中的表单具有 Delphi XE 7图标,当运行项目时会出现此旧图标。不知道为什么。只是想确保清楚我使用的是XE 7而不是任何旧的Delphi版本,其中相同的解决方案可能不适用。
在IDE中,图标为XE 7图标:
2条答案
按热度按时间q5lcpyga1#
您要查找的附加选项是
toShowButtons
。请在使用toShowTreeLines
的相同位置使用它。该选项在
TVTPaintOption
的声明中的 VirtualTrees.pas 中进行了说明:sbdsn5lh2#
除了@Rob Kennedy的回答,除了选项“toShowButtons”之外,可能需要的另一个选项(对于最高层次级别)是选项“toShowRoot”