i am trying to add small icon to VirtualTreeview in delphi2010 i have ImageList attached to VirtualTreeview using the property images
procedure TMainFrm.VSTG
Let's have an image list ImageList1
and assign it to VirtualStringTree1.Images
property. Then joining to the previous commenters, before you use FileInfo
, assign something to it, like: FileInfo := Sender.GetNodeData(Node)
, than you can use FileInfo.FileIco
. But you should add your icon to the imagelist not in the OnGetImageIndex
. You should do it in OnInitNode (if you follow the virtual paradigm, what you should do), than store the index of the added icon in FileInfo. example:
procedure TForm1.VirtualStringTree1InitNode(Sender: TBaseVirtualTree;
ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var
FileInfo: PFileInfoRec;
begin
FileInfo := Sender.GetNodeData(Node);
//...
FileInfo.FileIcoIndex := ImageList1.AddIcon(FileInfo.FileIco);
end;
than in onGetImageIndex
:
procedure TMainFrm.VSTGetImageIndex(Sender: TBaseVirtualTree;
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
var Ghosted: Boolean; var ImageIndex: Integer);
var
FileInfo: PFileInfoRec;
begin
FileInfo := Sender.GetNodeData(Node);
if Kind in [ikNormal , ikSelected] then
begin
if Column = 0 then
ImageIndex :=FileInfo.FileIcoIndex;
end;
end;
If it's not adequate, please post more sample code, to enlighten us about your problem.