Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: VirtualStringTree zeigt keine Icons aus System ImageList an

  Alt 10. Jun 2010, 01:47
Also der VST ruft die GetImageIndex Funktion jeweils 2x für jede Node auf. Das erste mal mit ikNormal und das zweite Mal mit ikOverlay. So funktioniert es nun:
Delphi-Quellcode:
procedure TfrmFileManager.vtFileListGetImageIndex(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
  var Ghosted: Boolean; var ImageIndex: Integer);
var
  NodeData: PFileNodeData;
begin
  if (Kind = ikOverlay) or (Column <> 0) then Exit;
  NodeData := vtFileList.GetNodeData(Node);
  if Assigned(NodeData) then
  begin
    ImageIndex := NodeData^.ImageIndex;
  end;
end;
Vorher hatte ich nur die erste Zeile weggelassen. Das Komische ist, dass auch im Overlay Call der ImageIndex korrekt gesetzt wird. Das normale Icon wird dann allerdings komplett mit clWindow übermalt. Mir als Benutzer des VST erscheint dieses Verhalten auch eher ungewollt. Zumindest erkenne ich keine Logik dahinter.
  Mit Zitat antworten Zitat