Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   VirtualStringTree - Sichtbarkeitsprobleme nach Clear (https://www.delphipraxis.net/193199-virtualstringtree-sichtbarkeitsprobleme-nach-clear.html)

SneakyBagels 5. Jul 2017 07:14

VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Ich befülle ein VirtualStringTree ganz normal - hier ein bisschen Farbe und dort ein bisschen.
Beim FormClose (zweites Formular, nicht das Hauptformular) wird VST.Clear; aufgerufen.

Rufe ich das Formular nun erneut mit nur einem Node auf so sehe ich beim Erscheinen des Fensters noch schnell die alten Nodes verschwinden.
Das alles dauert nur wenige Millisekunden.

Wie kann ich dieses Verhalten unterbinden?

Randinfo: wenn ich das VST per Buttonklick leere und nicht erst im OnClose, dann tritt dieses kosmetische Problem nicht auf.
Wenn ich VST.Clear in CloseQuery verlege, dann dauert es etwa 500ms bis 1000ms bis das Formular geschlossen wird. Ist also leider keine Lösung.

jaenicke 5. Jul 2017 09:56

AW: VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Hilft vielleicht BeginUpdate..EndUpdate?

SneakyBagels 5. Jul 2017 09:57

AW: VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Zitat:

Hilft vielleicht BeginUpdate..EndUpdate?
Wo genau, im CloseQuery meinst du jetzt?

Wenn du das meinst: das hilft gegen das Delay aber nicht gegen das Problem, dass ich beim nächsten Öffnen für wenige MS noch die alten, gezeichneten Nodes sehe die gar nicht mehr existieren.

jaenicke 5. Jul 2017 10:32

AW: VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Vielleicht ein explizites Invalidate nach dem Clear?
Müsste ich mal testen, ich zeige selten ein Fenster mehrfach an, meistens erstelle ich dann eine neue Instanz.

Aviator 5. Jul 2017 11:48

AW: VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Zitat:

Zitat von jaenicke (Beitrag 1376023)
Müsste ich mal testen, ich zeige selten ein Fenster mehrfach an, meistens erstelle ich dann eine neue Instanz.

Mache ich ebenfalls so. Hat diverse Vorteile die Sneaky aber lt. einem anderen Thread nicht nutzen wollte. :wink:

Die Clear Funktion des VST's ruft automatisch BeginUpdate und EndUpdate auf.

SneakyBagels 5. Jul 2017 12:17

AW: VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Zitat:

Hat diverse Vorteile die Sneaky aber lt. einem anderen Thread nicht nutzen wollte.
Hat leider aber auch den Nachteil, dass ich nicht auf das Formular zugreifen kann, wenn ich es jedes mal wieder freigebe.
Besonders beim Wechseln der Programmsprache ist das hinderlich.

himitsu 5. Jul 2017 12:29

AW: VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Ich würde auch erstmal an etwas ala "DoubleBuffered" denken -> beim Anzeigen nach Clea wird schnell der alte Puffer geladen und danach dann der neue Inhalt erstellt+angezeigt.
In dem Fall müsste man irgendwie den Puffer vor dem nächsten Anzeigen neu zeichnen lassen.

SneakyBagels 5. Jul 2017 12:31

AW: VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Ich konnte das Problem lösen.
Es ist zwar eher 0815 aber nach dem VST.Clear; im FormClose ein Application.ProcessMessages; hat das Problem gelöst.

Ghostwalker 6. Jul 2017 05:12

AW: VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Hmmm...dann macht das ganze Verhalten auch Sinn. Der Clear kommt nicht mehr dazu, das er komplett ausgeführt wird, bevor das Formular geschlossen wird (fehlende Rücksprung-Addresse, Stack usw.). Da der VST nicht zum schliessenden Formular gehört, bleiben die Daten erhalten.

Ich vermute mal, das der erneute Aufruf des Formulars ebenfalls einen Clear ausführt oder ?

SneakyBagels 6. Jul 2017 07:51

AW: VirtualStringTree - Sichtbarkeitsprobleme nach Clear
 
Das Close wird innerhalb desselben Formulars aufgerufen.

Zitat:

Ich vermute mal, das der erneute Aufruf des Formulars ebenfalls einen Clear ausführt oder ?
Nein. Es gibt nur dieses eine Clear.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.
Seite 1 von 2  1 2      

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