AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Listview mit Firemonkey

Ein Thema von Peter666 · begonnen am 3. Mai 2016 · letzter Beitrag vom 1. Jun 2016
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
4.181 Beiträge
 
Delphi 12 Athens
 
#1

AW: Listview mit Firemonkey

  Alt 9. Mai 2016, 20:20
Wenn man wirklich 2500+ Bitmaps laden will dann sollte man die vielleicht nicht alle im Speicher halten.
Mit dem Ansatz von Harry könnte man ein Fenster in den Daten laden, und die Bitmaps entsprechend nachladen.

Weil ich mit diversen LowMemory Applikation Events zu kämpfen hatte (habe) frage ich mich ständig:
Wie speichere ich am Besten meine Bilder (Thumbnails) auf den Mobile Devices ?

- Nachladen von File ist nicht so besonders performat
- Gespeichert in Sqlite Datenbank, aber legt Sqlite das doch wieder voll im Speicher an ?
- Irgendeine andere Datenbank-Lösung, statt Sqlite ?
FdMemoryTable liegt wohl auch komplett im Speicher, oder nicht ?
- Benutzen eines OnCalculateFields Events, um die Bitmaps dynamisch zu generieren ?
- Speichern in einer eigens dafür erstellten Klasse ?

Die perfekte Antwort dafür suche ich noch, es scheint alles Vor- und Nachteile zu haben.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#2

AW: Listview mit Firemonkey

  Alt 10. Mai 2016, 06:46
Kleine Zwischenfrage zu Deinen Gedanken, Rollo: Warum glaubst Du, daß Bilder aus Dateien zu laden weniger Performant sein soll als sie aus einer SQLite DB zu ziehen? Du weisst, daß SQLite dateibasiert ist? Nur mal so als Denkanstoß

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.181 Beiträge
 
Delphi 12 Athens
 
#3

AW: Listview mit Firemonkey

  Alt 10. Mai 2016, 07:02
Hallo Sherlok,

ja, richtig.

Ich glaube aber einfach das Datenbanken solche Prozesse super-optimiert haben (Wunschdenken).
Es geht ja um kleinere Thumbnails, größere Bilder würde ich auch immer über Linik nachladen.

Aber wenn man auf MobileDevices eine ListView mit kleinen Vorschaubildern machen möchte wäre doch
eine einfache Datenbank dafür elegant.

Jedenfalls ist mir noch nicht klar was hier generell der Beste Weg ist.

Rollo

Geändert von Rollo62 (10. Mai 2016 um 07:11 Uhr)
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#4

AW: Listview mit Firemonkey

  Alt 1. Jun 2016, 11:42
ich steh gerade ein bisschen auf dem Schlauch, aber gibt es eine Möglichkeit diverse TListViewItems zu verstecken? Sowas wie eine Visible Eigenschaft, als listview.items[1].visible := false ist ja nicht implementiert.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#5

AW: Listview mit Firemonkey

  Alt 1. Jun 2016, 12:00
ich steh gerade ein bisschen auf dem Schlauch, aber gibt es eine Möglichkeit diverse TListViewItems zu verstecken? Sowas wie eine Visible Eigenschaft, als listview.items[1].visible := false ist ja nicht implementiert.
Außer neu aufbauen, und die betreffenden Items nicht mitzuerzeugen ist mir nichts bekannt. Sorry... FMX ist gegenüber VCL leider in sehr vielen Dingen noch furchtbar weit zurück. Mir fällt da als abschreckendes Beispiel noch das TDateEdit ein...Grauslig.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#6

AW: Listview mit Firemonkey

  Alt 1. Jun 2016, 12:34

Außer neu aufbauen, und die betreffenden Items nicht mitzuerzeugen ist mir nichts bekannt. Sorry... FMX ist gegenüber VCL leider in sehr vielen Dingen noch furchtbar weit zurück. Mir fällt da als abschreckendes Beispiel noch das TDateEdit ein...Grauslig.

Sherlock
Das ist doch Mist Ich hab gesehen das die Filterfunktion da sowas macht, aber da muss man wohl mehr als nur ein bisschen hand anlegen, wenn man das mit einem eigenen Filter machen will. Schade eigentlich, weil TListview ist bockenlahm. Das fängt schon mit sowas an:

Delphi-Quellcode:
for LItem in FNewItems do
      LItem.CreateObjects;
Hat jemand mal zum Spaß 5000 Einträge oder mehr in eine TListView geschrieben? Das geht recht schnell, aber nach dem Endupdate wird jede Einzelne TListViewItem initialisiert und TAppearanceListView.ResetViewAppearance aufgerufen. Dort erfolgt ein LItemObjects.ResetObjects(AItem, GetFinalItemSize); und zwar von allen Einträgen. Das ganze wäre wesentlich performanter, wenn das nur die sichtbaren Objekte beträfe. So dauert es 3 Sekunden auf einem Android und da kommt dann gerne ein Anwendung reagiert nicht mehr vom System.
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Listview mit Firemonkey

  Alt 1. Jun 2016, 13:16
Hab gerade kein Delphi hier, aber haben ListviewItems einen Parent? Wenn ja kann man ja dadrüber die Sichtbarkeit steuern. Alternativ Height := 0.
Philip
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Listview mit Firemonkey

  Alt 1. Jun 2016, 12:00
Kleine Zwischenfrage zu Deinen Gedanken, Rollo: Warum glaubst Du, daß Bilder aus Dateien zu laden weniger Performant sein soll als sie aus einer SQLite DB zu ziehen? Du weisst, daß SQLite dateibasiert ist? Nur mal so als Denkanstoß
Auf mobilen Systemen rate ich davon ab, Bilder oder Binärdaten in einer SQLite-DB zu speichern. Das ist dort nämlich krötenlangsam.
Steht auch irgendwo in der Doku von SQLite, dass ab einer bestimmten Datengröße die Performance unterirdisch ist.
https://www.sqlite.org/intern-v-extern-blob.html
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:20 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