AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Welche Items sind im Sichtbaren Bereich? FMX Listview
Thema durchsuchen
Ansicht
Themen-Optionen

Welche Items sind im Sichtbaren Bereich? FMX Listview

Ein Thema von Markus Effenberger · begonnen am 3. Feb 2019 · letzter Beitrag vom 3. Feb 2019
Antwort Antwort
Markus Effenberger

Registriert seit: 2. Jul 2014
44 Beiträge
 
Delphi 10.3 Rio
 
#1

Welche Items sind im Sichtbaren Bereich? FMX Listview

  Alt 3. Feb 2019, 08:30
Kann man irgendwie herausfinden, welche Items der Firemonkey-ListView sich gerade im sichtbaren Bereich befinden?

Hintergrund der Frage: Datenbank SQLite wird genutzt. In Blobfields sind Bilder enthalten, die per Livebindungs in Items zugewiesen werden. Das Filtern der Tabelle (und das anschließende schließen und neuöffnen der Tabelle, damit die Filteränderungen auch dargestellt werden) dauern zu lange. Teilweise mehr als 500ms. Die einzige Lösung, die ich momentan sehe, ist, die Bilder aus der Tabelle wegzulassen und nur dann zuzuweisen, wenn die Items im sichtbaren Bereich liegen.

  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.478 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Welche Items sind im Sichtbaren Bereich? FMX Listview

  Alt 3. Feb 2019, 09:14
Ja, Du kannst für jedes ListviewItem (per Listview.GetItemrect[index]) prüfen, ob es (seine Ausmaße) im Clientbereich der Listview liegt.

Aber davon abgesehen, sind solche Performance-Sachen oft ein vergessenes BeginUpdate und EndUpdate für die Listview (Listbox, etc).
  Mit Zitat antworten Zitat
Markus Effenberger

Registriert seit: 2. Jul 2014
44 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Welche Items sind im Sichtbaren Bereich? FMX Listview

  Alt 3. Feb 2019, 10:02
Aber davon abgesehen, sind solche Performance-Sachen oft ein vergessenes BeginUpdate und EndUpdate für die Listview (Listbox, etc).
Krasse Sache... Ich erstaune gerade vor meiner Blödheit eigentlich sollte ich das nämlich wissen, was du gerade geschrieben hast. Dank Deines Tips, habe ich mir das Projekt nochmal angeguckt und gemerkt, was ich da für einen Denkfehler gemacht habe. Damit andere nicht den gleichen Fehler machen, schreibe ich ihn hier einmal auf: In dem Projekt gab es mehrere ListViews. Drei Listviews davon waren mit nur einer Table über LiveBindings verknüpft. Die zwei anderen ListViews lagen jeweils in nicht sichtbaren Forms (weil sie im Hintergrund lagen). Nun hatte ich das BeginUpdate und EndUpdate vorher nur auf der ListView angewendet, welche auf dem jeweils gerade sichtbaren Form lag.

Nun läuft es (fast) perfekt flüssig!

Wie heißt es so schön... Manchmal sieht man den Wald vor lauter Bäumen nicht mehr
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.478 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Welche Items sind im Sichtbaren Bereich? FMX Listview

  Alt 3. Feb 2019, 12:20

Wie heißt es so schön... Manchmal sieht man den Wald vor lauter Bäumen nicht mehr
Das kenn ich! Eine andere schöne Sache (die ich mir selbst hin und wieder auch mal gönne), ist ein BeginScene und EndScene bei Grafik-Mal-Aktionen auf den Canvas zu vergessen. Und dann wundert man sich, dass nichts gezeichnet wird...
  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 00:08 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