i am trying to add small icon to VirtualTreeview in delphi2010 i have ImageList attached to VirtualTreeview using the property images
procedure TMainFrm.VSTGetImageIndex(Sender: TBaseVirtualTree;
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
var Ghosted: Boolean; var ImageIndex: Integer);
var
FileInfo: PFileInfoRec;
begin
if Kind in [ikNormal , ikSelected] then
begin
if Column = 0 then
ImageIndex :=ImageList1.AddIcon(FileInfo.FileIco);
end;
end;
but after adding the icons look too dark:
FileInfo Strucutre (Record with methods) filled whene i load the files so what i need is just to add the fileico from fileinfo to imagelist and display in treeview
type
PFileInfoRec= ^TFileInfoRec;
TFileInfoRec = record
strict private
vFullPath: string;
.
.
.
vFileIco : TIcon;
public
constructor Create(const FilePath: string);
property FullPath: string read vFullPath;
.
.
.
property FileIco : TIcon read vFileIco;
end;
the constructor:
constructor TFileInfoRec.Create(const FilePath: string);
var
FileInfo: SHFILEINFO;
begin
vFullPath := FilePath;
.
.
.
vFileIco := TIcon.Create;
vFileIco.Handle := FileInfo.hIcon;
// vFileIco.Free;
end;
so where is the probleme ? ! thanks
Let's have an image list
ImageList1
and assign it toVirtualStringTree1.Images
property. Then joining to the previous commenters, before you useFileInfo
, assign something to it, like:FileInfo := Sender.GetNodeData(Node)
, than you can useFileInfo.FileIco
. But you should add your icon to the imagelist not in theOnGetImageIndex
. 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:than in
onGetImageIndex
:If it's not adequate, please post more sample code, to enlighten us about your problem.