Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Graphics32 anno domini 2012 (https://www.delphipraxis.net/204060-graphics32-anno-domini-2012-a.html)

Uwe Raabe 21. Apr 2020 11:54

AW: Graphics32 anno domini 2012
 
Zitat:

Zitat von creehawk (Beitrag 1462562)
WIE kann ich jetzt in die TVirtualImageList PROGRAMMATISCH einzelne Bilder aus der TImageCollection einlesen?

TVirtualImageList bietet ein paar Überladung für die Methode Add an. Im einfachsten Fall vergibst du dort den Namen für das Image in der ImageList und gibst den Namen des Images in der Collection an.

Delphi-Quellcode:
  VirtualImageList1.BeginUpdate;
  try
    VirtualImageList1.Clear;
    VirtualImageList1.Add('Image 1', 'address-book');
    VirtualImageList1.Add('Image 2', 'alert');
  finally
    VirtualImageList1.EndUpdate;
  end;

creehawk 21. Apr 2020 14:56

AW: Graphics32 anno domini 2012
 
Okay, hatte ich auch gesehen und folgendes gemacht:

Auf der Form ist eine TImageCollection und TVirtualImageList vorhanden, TImageCollection hat wie gesagt 257 128er Png's, TVirtualImageList ist leer und hat die TImageCollection als ImageCollection vermerkt. Der jeweilige Bildname kommt aus einer XML Datei und entspricht exakt dem Namen in der TImageCollection.
Delphi-Quellcode:
Var
I:Integer;
BILD:String;
 begin   
 For I := 0 to ShortListItemsNodes.length-1 do
  begin
   BILD := ShortListItemsNodes.Item[I].attributes[6].Text;
   VirtualImageList1.Add(BildName,BildName);
  end;
 end;
Nach dem Durchlauf ist in der VirtualImageList nichts drin wenn ich VirtuelImageList.count vertrauen darf. Setze ich VirtualImageList1.Add(BildName,I), also I als Index, holt er die Bilder zwar, aber natürlich nur in der Reihenfolge 0,1,2,3,..... was mir jetzt nicht wirkltich hilft.

Und jetzt der Witz: Setze ich manuell einzelne Bilder wie
Delphi-Quellcode:
      Main.VirtualImageList1.add('icon_cat_0','icon_cat_0');
      Main.VirtualImageList1.add('icon_eagle_0','icon_eagle_0');
      Main.VirtualImageList1.add('icon_fish_0','icon_fish_0');
werden diese anstandlos verarbeitet und angezeigt. Versteh ich jetzt überhaupt nicht.

creehawk

Uwe Raabe 21. Apr 2020 14:59

AW: Graphics32 anno domini 2012
 
BILD <> BildName

creehawk 21. Apr 2020 15:09

AW: Graphics32 anno domini 2012
 
Ja, klar, habe mich hier verschrieben. Soll heißen:

Delphi-Quellcode:
Var
I:Integer;
BildName:String;
begin   
For I := 0 to ShortListItemsNodes.length-1 do
 begin
  BildName := ShortListItemsNodes.Item[I].attributes[6].Text;
  VirtualImageList1.Add(BildName,BildName);
 end;
end;
Ergebnis : geht trotzdem nicht.

creehawk

Uwe Raabe 21. Apr 2020 15:15

AW: Graphics32 anno domini 2012
 
Und was sagt der Debugger steht in Bildname?

creehawk 21. Apr 2020 15:35

AW: Graphics32 anno domini 2012
 
Asche auf mein Haupt.

Ich habe den Fehler gefunden. In der XML steht der Name der Grafik ohne eine Zusatz (_0), in der ImageList natrülich mit. Da habe ich ständig drüber weg gelesen.

Ich bedanke mich sehr. Als funktioniert tadellos.

creehawk


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr.
Seite 2 von 2     12   

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