AGB  ·  Datenschutz  ·  Impressum  







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

Listview erst beim zweiten öffnen

Ein Thema von greenmile · begonnen am 23. Apr 2016 · letzter Beitrag vom 25. Apr 2016
 
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#4

AW: Listview erst beim zweiten öffnen

  Alt 24. Apr 2016, 20:43
Ich habe das Sliden generell stark reduziert, das sieht zwar schön aus,
macht aber den Eindruck bei der Bedienung der App auch etwas lahm.
Ohne sliden wirkt die Bedienung flotter, und ich handle mir vor Allem keine Probleme damit ein.

Ein Slide mit Panel mache ich noch, um zusätzliche Bedienfunktionen anzuzeigen.
Das fahre ich einfach rein/raus mithilfe einer FloatAnimation (von unten rein in Position,
und wieder nach unten weg).
Das klappt ganz gut, aber womöglich nur weil ich in der Zeit nichts anderes machen muss.

Wenn z.B. der MultiView slidet, und ich parallel mit dem slidenden View noch die Datenbank aktiviere
und per LiveBindings in eine ListView schreiben lasse, dann ruckelt es.
Das scheint sich nicht so einfach entkoppeln zu lassen, die Wahl ist
- entweder alles vorherberechnen und geöffnet lassen - dann slidet es gut - braucht aber vollen Memory Footprint
(und braucht nach dem Start länger um alles vorzubereiten)
- oder das Sliden weglassen - und bei lägeren Operationen einen Animator zeigen.
(weil z.B. FormCreate eigentlich schnell genug funktioniert ist das kaum nötig)

Übrigens ruckelt der AniIndicator genauso, wohl aus dem gleichen Grund.
Deshalb lege ich bei solchen Wartezeiten noch zusätzlich einen grauen, Opaque 0.7 Panel über den ganzen View.
In dem sitzt dann der AniIndicator (der ruckeln kann).
Damit sieht dann zumindest etwas interessanter aus, wenn kurze Wartezeiten nötig sein, und das Ruckel
fällt nicht so auf.

Ich bin generell etwas vorsichtig bei den Animation geworden, weil wohl einige mit
Application.ProcessMessages funktionieren.
Threads und Tasks sind eine tolle Sache, aber schlussendlich muss es immer wieder an UI Controls übergeben
werden, und da kann es dann wieder hängen.

Hatte mal versucht möglichst alles in Backgroundthreads zu verlegen, und dann nur die UI-Zugriffe zu synchronisieren.
Das funktioniert ganz gut, aber die meisten Zugriffe sind halt die UI-Controls, ob sich ein Thread für
ein paar Hintergrundaufgaben lohnt ist mir noch nicht ganz klar.
Hängt wahrscheinlich vom jeweiligen Problem ab.
Ich möchte baer gar nichts Besonderes, sondern erstmal nur ein DataSet mit einem ListView verbinden,
ohne das es hängt.
Bei 20 Text-Einträgen geht das Alles auch, bei 2000 mit Bitmaps sieht es aber schon anders aus.

Rollo
  Mit Zitat antworten Zitat
 


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 08:22 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