Einzelnen Beitrag anzeigen

creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
233 Beiträge
 
Delphi 10.4 Sydney
 
#1

Vergessliche Imagelist

  Alt 4. Mär 2020, 10:43
Moin.

Die Imagelist vergisst Bilder.?

Ich lese aus einer elend langen XML die erforderlichen Daten für die Anzeige in einem ListView. GUID, Name und Grafikname. Das gebe ich in ein Listview. Klappt bestens.

Delphi-Quellcode:
function GetItemListStandard():Boolean;
   Var
   I:Integer;
   ListItem : TListItem;
   ItemListStandard : TStringList;
   ItemListStandardGUID : TStringList;
   PNGList : TImageList;
   PNGImage : TPNGObject;
   BMPImage : TBitmap;
   Name:String;
   GUID:String;
   begin
   Main.ItemView.Clear;
   PNGImage := TPngObject.Create;
   BMPImage := TBitmap.Create;
   PNGList := TImageList.Create(Main);
   PNGList.Width:=48;
   PNGList.Height:=48;
   PNGList.DrawingStyle:=dsTransparent;
   PNGList.ColorDepth := cd32Bit;
   Main.ItemView.SmallImages := PngList;
   ItemListStandard:=TStringList.Create;
   ItemListStandardGUID:=TStringList.Create;
   
   // Daten holen aus XML   
   ItemUnits := ItemRoot.SelectNodes('Item');
   For I := 0 to ItemUnits.length-1 do
    begin
     If AnsiPos(ItemAllocation,ItemUnits.item[I].attributes[3].Text) > 0 then
           begin
      ItemListStandard.Add(ItemUnits.Item[I].attributes[1].Text);
      ItemListStandardGUID.Add(ItemUnits.Item[I].attributes[0].Text);
      PNGImage.LoadFromFile(MinPath + ItemUnits.Item[I].attributes[5].Text);
      BMPImage.Assign(PNGImage);
      PNGList.Add(BMPImage,nil);
     end;
    end;
   ItemList := Nil;

  For I := 0 to ItemListStandardGUID.Count-1 do
  begin
   ListItem := Main.ItemView.Items.Add;
   Listitem.Caption := ItemlistStandardGUID.Strings[I];
   Listitem.Subitems.add(ItemlistStandard.Strings[I]);
   ListItem.ImageIndex := I;
  end;
Result:= True;   
end;
Bestens in soweit als das die Ausgabe zunächst korrekt erscheint. Einzelne Bilder fehlen allerdings und am Ende der Anzeige gibt es dann noch Einträge aber dann eben ohne Bild.

Im Kern fehlen immer die drei gleichen Bilder. Ich habe diese drei PNG's rauf und runter geprüft, sind ok. Fehlermeldungen gibt es auch nicht. Beim DIREKTEN lesen der entsprechenden Grafik ist die Grafik definitiv nicht da.

Hat jemand irgendeine Idee.......

creehawk

P.S. Die Grafiken wurden als DDS(BC/,SRGB) in PaintNet geladen und wg.Transparenz als PNG gespeichert.
  Mit Zitat antworten Zitat