AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FMX Imagelist PNG zufügen

Ein Thema von creehawk · begonnen am 18. Feb 2023 · letzter Beitrag vom 18. Feb 2023
Antwort Antwort
creehawk

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

FMX Imagelist PNG zufügen

  Alt 18. Feb 2023, 10:04
Moin Moin.

Wie aus VCL gewohnt möchte ich eine Ladung PNG's (432 Stück) in eine ImageList schrauben, wobei diese Imagelist in einer ListView dann die Bilder via ImageIndex anzeigen soll. Schön.

Ich habe keinen Dunst wie ich die Bilder programmatisch in FMX da reinbekomme. Zu Fuß geht ja, aber bei 432 Stück.....

creehawk
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
235 Beiträge
 
Delphi 12 Athens
 
#2

AW: FMX Imagelist PNG zufügen

  Alt 18. Feb 2023, 10:38
Vielleicht nicht 100%, aber so in etwa.

Code:
var
  si: TCustomSourceItem;
  d: TCustomDestinationItem;
  layer: TLayer;
  i,w,h:integer;
  st: TMemorystream;
begin
// favicons is the name of the image list
// st is a memorystream holding the image
// imagepath is a stringlist holding the filenames of the images

  favicons.ClearCache;
  favicons.Source.Clear;
  favicons.Destination.Clear;

  st:=TMemoryStream.create;

  for i:=0 to imagepath.count-1 do
  begin
    st.LoadFromFile(imagepath[i]);
    st.position:=0;
    si:=favicons.Source.Add;
    si.Name := 'image'+i.ToString;
    si.MultiResBitmap.LoadItemFromStream(st,1);
    si.MultiResBitmap.TransparentColor := TColorRec.Fuchsia;
    si.MultiResBitmap.SizeKind := TSizeKind.Custom;
    si.MultiResBitmap.Width := 16;
    si.MultiResBitmap.Height := 16;
    w:=si.MultiResBitmap.Bitmaps[1].Width;
    h:=si.MultiResBitmap.Bitmaps[1].Height;
    d:=favicons.Destination.Add;
    Layer := d.Layers.Add;
    Layer.SourceRect.Rect := TRectF.Create(0, 0, W , H);
    Layer.Name := si.name;
// Note: The index of the just added image can be retrieved with d.index here, to set for example the imageindex property in a listview item
  end;

  st.free;

end;
  Mit Zitat antworten Zitat
mmw
(Gast)

n/a Beiträge
 
#3

AW: FMX Imagelist PNG zufügen

  Alt 18. Feb 2023, 10:43
Hallo,

https://www.delphipraxis.net/199146-...parameter.html

Gruß
  Mit Zitat antworten Zitat
creehawk

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

AW: FMX Imagelist PNG zufügen

  Alt 18. Feb 2023, 15:04
Prima. vielen Dank, dann wollen wir sehen ....

creehawk
  Mit Zitat antworten Zitat
creehawk

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

AW: FMX Imagelist PNG zufügen

  Alt 18. Feb 2023, 15:54
Jupp, klappt. Wobei es erstmal um das eigentliche Verständnis geht, ausgehend von der TImageCollection in VCL.

Jetzt hätte ich aber noch eine Frage: in besagter IMageCollection kann ich via GetIndexByName sehr einfach den Index der Grafik in der Collection bekommen. In den Properties zur FMX ImageList finde ich da nichts ....

creehawk

P.S. Ich muss ein kleines Programm nach FMX portieren, sonst verwende ich FMX nicht.
  Mit Zitat antworten Zitat
mmw
(Gast)

n/a Beiträge
 
#6

AW: FMX Imagelist PNG zufügen

  Alt 18. Feb 2023, 16:40
Hallo,
so sollte es funktionieren -

Delphi-Quellcode:
var
  myBitmap:TCustomBitmapitem;
  mysize:Tsize;
  indx:Integer;
begin

myBitmap:=TCustomBitmapitem.Create(nil);

 try
  ImageList1.BitmapItemByName('Image',myBitmap,mysize);
  indx:=mybitmap.Index;

 finally
  myBitmap.Free;
 end;
end;
Gruß

Geändert von mmw (18. Feb 2023 um 17:34 Uhr)
  Mit Zitat antworten Zitat
creehawk

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

AW: FMX Imagelist PNG zufügen

  Alt 18. Feb 2023, 18:13
Nee, er gibt nur immer eine 0 zurück.

Aber:

    Index := MainForm.ImageList.source.Indexof(Bild); das geht anstandslos. Ha!

Danke dir trotzdem natürlich.

creehawk
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz