Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TVirtualView zeigt nur 4 verschiedene Icons der ImageList an (https://www.delphipraxis.net/135990-tvirtualview-zeigt-nur-4-verschiedene-icons-der-imagelist.html)

Hedge 21. Jun 2009 18:19


TVirtualView zeigt nur 4 verschiedene Icons der ImageList an
 
Ich habe ein recht seltsames Problem.

In einem TVirtualView füge ich nach und nach Einträge mit unterschiedlichen Icons hinzu.
Es gibt nur 2 Ebenen.
Einträge auf der 0. Ebene kriegen stets das selbe Icons.
Die Einträge der 1. Ebene haben stets ein eigenes.
In der Imagelist ist das 1. Icon deswegen das für die der ersten und alle anderen folgen darauf.

Wenn ich auf einen Eintrag klicke wird dessen Icon in einem Speed-Button angezeigt.

Sobald ich mehr als 3 Einträge in der 1. Ebene habe zeigt er in dem Treeview statt des 4. Icons, das allererste an.
Komischerweise wird im Speed-Button das richtige Bild der Image-Liste angezeigt.

Ich habe auch meine OnGetImageIndex-Funktion im Debugger durchlaufen.
Dort wird auch ImageIndex der korrekte Wert mitgegeben.
Hier noch die OnGetImageIndex-Funktion:

Delphi-Quellcode:
procedure TForm1.VSTGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean;var ImageIndex: Integer);
var
  Data: PTreeData;
begin
  if (Column=0) then
  begin
      if (Sender.GetNodeLevel(Node)=0) then
     begin
       ImageIndex:=0;
     end
     else
      begin
         Data:=VST.GetNodeData(Node);
       ImageIndex:=Data^.ImageIndex;
     end;
  end;
end;

generic 21. Jun 2009 19:20

Re: TVirtualView zeigt nur 4 verschiedene Icons der ImageLis
 
Du musst den Kind abfragen.

Diese Frage wurde neulich schon einmal gestellt.

Bitte SUFU nutzen!

Hedge 21. Jun 2009 19:44

Re: TVirtualView zeigt nur 4 verschiedene Icons der ImageLis
 
Oje...muss wohl nochmal die Schulbank drücken. Hab mit den falschen Wörtern gesucht im Forum, sorry.

Hier habe ich nun die Lösung gefunden:

http://www.delphipraxis.net/internal...ltreeview+kind


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz