Delphi 展开TVirtualStringTree节点时如何更改该节点图标
这听起来像个愚蠢的问题,但我已经尝试了我能想到的一切,但没有成功。展开VirtualStringTree节点时,如何更改该节点的图标图像。i、 e.当节点折叠时,我想显示一个关闭的文件夹图标,当其展开时,我想显示一个打开的文件夹图标Delphi 展开TVirtualStringTree节点时如何更改该节点图标,delphi,virtualtreeview,tvirtualstringtree,Delphi,Virtualtreeview,Tvirtualstringtree,这听起来像个愚蠢的问题,但我已经尝试了我能想到的一切,但没有成功。展开VirtualStringTree节点时,如何更改该节点的图标图像。i、 e.当节点折叠时,我想显示一个关闭的文件夹图标,当其展开时,我想显示一个打开的文件夹图标 在GetImageIndex中,我看不到如何判断节点是否已展开。“种类”仅在选择它时告诉我。TBaseVirtualTree具有展开的属性,用于检查给定节点是否展开: procedure TForm1.VTGetImageIndex(Sender: TBaseVir
在GetImageIndex中,我看不到如何判断节点是否已展开。“种类”仅在选择它时告诉我。TBaseVirtualTree具有
展开的属性,用于检查给定节点是否展开:
procedure TForm1.VTGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode;
Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
begin
if Sender.Expanded[Node] then begin
...
end;
end;
节点:PVirtualNodeOnGetImageIndex()
事件的code>参数可以通过它告诉您状态
属性是否已展开
procedure TForm1.VSTGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode;
Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: TImageIndex);
begin
if vsExpanded in Node.States then
// select image as needed
...
end;
背景:
从源(单元虚拟树
)
我认为节点的属性是一个实现细节,对于大多数(所有的)事物,有一种方法是用来检索给定的信息。我宁愿使用<代码>扩展属性,就像“AIN指出”,节点<代码>状态> />代码应该是一个实现细节。
TVirtualNodeState = (
...
vsExpanded, // Set if the node is expanded.
...
);