Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#11

AW: ImageCollection VirtualImageList Bilder von Festplatte laden

  Alt 24. Mai 2020, 10:23
Das Bild img1 wird in der VirtualImageList aber ans Ende angefügt egal welchen Wert IndexOld hat.
Ein Add fügt halt immer an. Der übergebene Index ist ja auch der in der ImageCollection und nicht der in der VirtualImageList. Wie schon gesagt, wäre Insert der bessere Ansatz.

Ich bin mir auch nicht sicher, ob dir bewusst ist, daß eine TVirtualImageList auch eine Teilmenge der Bilder einer TImageCollection enthalten kann und die Reihenfolge beliebig ist. Daher gibt es auch die Möglichkeit, die Verknüpfung mit dem Bildnamen anstatt des Index in der ImageCollection zu machen. Dann ist das gegen Umsortierungen in der ImageCollection immun.

Und wenn man zur Laufzeit Bilder laden möchte?
Ich möchte vorhandene Bilder einer ImageCollection und VirtualImageList durch andere zur Laufzeit austauschen.
In dem Fall bleibt dann eben nur der steinige Weg, das alles von Hand zu machen.

Verwendest du denn die automatische Größenanpassung der VirtualImageList überhaupt? In dem Fall solltest du doch auch unterschiedliche Größen deiner Bilder in separaten Dateien vorliegen haben. Theoretisch könnte man zwar auch von 256 Pixeln auf 16 skalieren lassen, aber das sieht in der Regel eher bescheiden aus. Deine Eingangsfrage lässt aber den Größen- und Skalierungs-Aspekt komplett außen vor. Das wirft wiederum die Frage auf, ob die Kombination aus TVirtualImageList und TImageCollection für deinen Anwendungsfall überhaupt die richtige Wahl ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat