AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls FMX: Suche nach Listenkomponente, um Grafiken schnell zu laden
Thema durchsuchen
Ansicht
Themen-Optionen

FMX: Suche nach Listenkomponente, um Grafiken schnell zu laden

Ein Thema von amigage · begonnen am 7. Jun 2023 · letzter Beitrag vom 8. Jun 2023
Antwort Antwort
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
274 Beiträge
 
Delphi 12 Athens
 
#1

FMX: Suche nach Listenkomponente, um Grafiken schnell zu laden

  Alt 7. Jun 2023, 12:07
Hallo,

ich möchte zweispaltig, sagen wir einmal 500 Thumbnail Fotos laden und darunter jeweils einen Text anzeigen, z.B. den Namen des Fotos.
Und das Laden und Anzeigen der Daten soll so erfolgen, dass das mobile Gerät nicht hängen bleibt und Android z.B. eine Wartewarnung ausgibt.

Bisher habe ich folgende Komponenten probiert:

TListView:
Das Laden der Fotos geht flott. Nachteil, keine Mehrspaltigkeit.

TListbox:
ist mehrspaltig, das Laden von 500 Fotos erfolgt in einem Rutsch.
Aber auch mit Begin/EndUpdate dauert das Laden sehr lange (6x länger als TListBox).

TGrid mit TImageColumn:
ist mehrspaltig, das Anzeigen der Fotos erfolgt flott, und erst beim Scrollen werden die anderen Fotos nachgeladen.
Nachteil: die Fotos werden über OnDrawColumnCell oder OnGetValue immer wieder neu geladen/gezeichnet. Das bremst dann wiederum das schnelle Scrollen auf mobilen Geräten.

Meine Frage:
gibt es einen Trick bei TGrid oder eine Komponente, die einmal geladene/gezeichnete Daten nicht nochmals lädt.
Meines Erachtens wurde in einem Embarcadero Video auf eine Listen-Komponente hingewiesen, die Daten nur bei Bedarf nachlädt und bestehende nicht neu zeichnet. Ich weiß aber nicht mehr, wie die sich nennt...

Vielen Dank für einen Tipp.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#2

AW: FMX: Suche nach Listenkomponente, um Grafiken schnell zu laden

  Alt 7. Jun 2023, 14:45
Auf jeden Fall was mit TListView oder einer ScrollBox und eigenem Layout.
Ich würde das auch so machen, dass die Bilder im Hintergrund nachgeladen werden, damit schnell eine Anzeige kommt.
Außerdem würde ich die Anzeige begrenzen, z.B. auf 2-3 Seiten.
Es gibt auch das PullToRefresh, damit habe ich aber noch nicht wirklich was Produktives gemacht, nur ein paar Tests.

ListBox ist im Vergleich zu lahm und zu starr, die ist eher für klein,e feste Anzahl von Items ausgelegt.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#3

AW: FMX: Suche nach Listenkomponente, um Grafiken schnell zu laden

  Alt 8. Jun 2023, 12:50
Kann man nicht für TListView ein eigenes Layout anlegen?
Ich glaube mich zu erinnern, dass das für eine der mitgelieferten FMX Listkomponenten geht.
Schonb mal im Formular Designer rechts Klick drarauf gemacht und geschaut, was dort angeboten wird?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: FMX: Suche nach Listenkomponente, um Grafiken schnell zu laden

  Alt 8. Jun 2023, 14:03
Ja, ich weiß zwar grade nicht ob ListBox oder ListView (vermutlich Letzteres), aber da mann man im Designer die Items zusammenklicken.
$2B or not $2B
  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 21:45 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