![]() |
ImageCollection VirtualImageList Bilder von Festplatte laden
Ist es möglich Bilder von der Festplatte zur Laufzeit in eine ImageCollection und anschließend in eine VirtualImageList zu laden?
|
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Hallo,
so sollte es funktionieren. VirtualImageList.AddImages(Value: TCustomImageList); ![]() Gruß |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Danke. Kann man die Bilder auch direkt in die Liste laden, ohne vorher noch über eine dritte gehen zu müssen? Wie lädt man die Bilder vorher in eine ImageCollection?
Oder ist die ImageCollection die von mir falsch betitelte dritte Liste? Wenn ja wie lädt man die Bilder in die ImageCollection? Ein LoadFromFile o.ä. gibt es nicht. |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Hallo,
das müßte mit ImageList1.FileLoad() funktionieren. ![]() Gruß |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Zitat:
|
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Hallo,
ich bin zuerst von einer VirtualImageList ausgegangen. var itm:TimageCollectionItem; begin itm:=ImageCollection1.Images.Add; itm.SourceImages.Add.Image.LoadFromFile(); end; gruß |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Ich finde diese zwei neuen Komponenten ehrlich viel zu kompliziert. Wie füge ich dieses Bild, was jetzt in der ImageCollection ist, der VirtualImageList zu?
|
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Zitat:
Wenn man also ein Bild in die ImageCollection lädt, dann lädt man in der Regel nicht eine Bilddatei, sondern für jede Größe eine eigene. Programmatisch ist das in der Tat etwas komplexer als z.B. bei einer TImageList. Daher ist auch das empfohlene Vorgehen, den integrierten ImageCollection-Editor zu verwenden. |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
In meiner bestehenden ImageCollection habe ich den Eintrag mit Index X gelöscht. Den Eintrag mit Index X und X+1 für Disabled habe ich auch aus der VirtualImageList gelöscht.
Dann lade ich ein neues Bild von der Festplatte in die ImageCollection und füge es außerdem am alten Index der VirtualImageList hinzu |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Hallo,
vielleicht hilft dies VirtualImageList.insert() Gruß |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Zitat:
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. Zitat:
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. |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Mit Add funktioniert es jetzt.
|
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Zitat:
Zitat:
|
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Es ist lauffähig. Hoffe ich jedenfalls. Nur das Problem mit dem Disabled-Bild habe ich noch nicht gefunden.
Komisch ist auch, dass wenn ich mehr als ein Bild durch LoadCustomImage schicke, die Liste scheinbar kaputt gemacht wird. Lade ich ein Bild "d.png" und danach ein Bild "a.png", wird da wo a angezeigt weren soll, b angezeigt. Das führt sich so immer weiter fort. Ich habe im Anhang ein Minimalbeispiel angefügt. |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Hallo,
vielleicht sollte man nach einer Änderung Images.Change; aufrufen. Gruß |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Du machst es einem Menschen mit Rot/Grün-Schwäche aber echt schwer...
... und doch zu kompliziert. Da du nur eine Größe für die Bilder hast, geht es auch einfacher:
Delphi-Quellcode:
procedure TForm1.LoadCustomImage(const Path, ImageName: string);
var index: Integer; fileName: string; begin fileName := ExtractFilePath(ParamStr(0)) + Path + '\' + ImageName + '.png'; if not FileExists(fileName) then Exit; index := Images.GetIndexByName(ImageName); if (index = -1) then Exit; Images.Images[index].SourceImages[0].Image.LoadFromFile(fileName); // ersetzt das Source-Image Images.Images[index].Change; // aktualisiert die VirtualImageList, die auch gleich das Disabled-Image erneuert end; |
AW: ImageCollection VirtualImageList Bilder von Festplatte laden
Zitat:
Ich wusste nicht, dass das Ändern der ImageCollection auch gleichzeitig die VirtualImageList aktualisiert. Zitat:
Zitat:
Mein Fehler war scheinbar, dass ich aus beiden Listen gelöscht habe, was aber nicht sein muss (?) Vielen dank an euch beide. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz