Dynamische Imagelist + Listview Problem

Rund um die LCL und andere Komponenten
Antworten
hitzi
Beiträge: 13
Registriert: Di 22. Jan 2008, 11:51

Dynamische Imagelist + Listview Problem

Beitrag von hitzi »

Hallo,

ich erzeuge zur Laufzeit eine Imagelist und weise sie der Eigenschaft StateImages eines Listviews zu. Gefühlt wird das Listview mit folgenden Code:

Code: Alles auswählen

for i := 0 to localListing.FolderCount - 1 do begin  
    fLocalImageList.Add(localListing.GetFolder(i).Icon, nil);
    with lvLocal.Items.Add do begin
      Caption := localListing.GetFolder(i).DisplayName;
      SubItems.Add(DateTimeToStr(localListing.GetFolder(i).Date));
      ImageIndex := i;
    end;
  end;
localListing.GetFolder(i) ist eine Liste welche unter anderen die unterschiedlichen Icons enthält - ist auch erfolgreich getestet mit einem "TImage.Picture.Icon := localListing.GetFolder(i).Icon", d.h. es sind unterschiedliche Icons in der Liste.
lvLocal ist in meinem Beispiel das Listview und fLocalImageList die besagte dynamisch erzeugte Imageliste. Ein Testausgabe von fLocalImageList.Count zeigt auch, dass sich die Anzahl der Icons in der Imagelist erhöht.
Das Problem ist nun, dass trotz eines unterschiedlichen ImageIndex anscheinend immer nur das erste Icon aus der Imageliste im Listview angezeigt wird. Wie kann ich überprüfen, welche Images in der Imagelist angekommen sind und gibt es vielleicht noch nen anderen Ansatz, wo ich nach dem Problem suchen könnte?

Vielen Dank schonmal
Hitzi

[EDIT]
Folgender Code zeigt mir das letzte Icon aus der Imagelist an und beweist mir, dass die Icons ordentlich in die Imagelist geladen werden (ist ein anderes Icon, als das von dem Listview):

Code: Alles auswählen

var t : Graphics.TBitmap;
[...]
t := Graphics.TBitmap.Create;
fLocalImageList.GetBitmap(fLocalImageList.Count - 1, t);
image1.Picture.Bitmap := t;
Also muss im Code oben irgendwas bei der ImageIndex Zuordnung falsch laufen oder intern im Listview. Wo liegt nur das Problem?

hitzi
Beiträge: 13
Registriert: Di 22. Jan 2008, 11:51

Beitrag von hitzi »

Vergesst das alles einfach. Das Zuweisen zu den StateImages des Listviews ist falsch. SmallImages wären besser gewesen ;)

Antworten