Einzelnen Beitrag anzeigen

Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#1

TVirtualView zeigt nur 4 verschiedene Icons der ImageList an

  Alt 21. Jun 2009, 19:19
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;
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat