Also erstmal zum Unterschied:
Eine TPngImageList ist abgeleitet von einer normalen TImageList und erweiter diese um PNG-Support. Wie jede andere TImageList müssen alle Bilder darin gleich groß sein. Alle Controls, die mit einer TImageList zusammenarbeiten können (z.B. TToolbar), sollten dies auch mit einer TPngImageList tun.
Im Gegensatz dazu können die Bilder in einer TPngImageCollection unterschiedliche Größe haben. Allerdings muss man sich hier um die Darstellung der Bilder selber kümmern.
Hier ein kleines Beispiel, wie man das macht.
Auf ein Form platziere eine TPngImageCollection und fülle diese mit diversen Bildern (über den Editor oder per Code). Dann brauchen wir noch ein TImage und einen TButton auf dem Form. Beim TImage setzen wir das AutoSize auf true (damit es sich an die Bildgröße anpasst). Im ButtonClick-Event steht dann folgender Code:
Delphi-Quellcode:
begin
Image1.Picture.Graphic := PngImageCollection1.Items[Tag].PngImage;
Tag := Tag + 1;
if Tag >= PngImageCollection1.Items.Count then
Tag := 0;
end;
Mit jedem Button-Click wird nun das nächste Bild aus der Collection dargestellt.