Entwickler-Ecke
LCL-Komponenten - Label-Caption vor GUI-Blockade setzen - zu langsam?
hydemarie - Mo 06.01.20 23:05
Titel: Label-Caption vor GUI-Blockade setzen - zu langsam?
Ich habe hier mal wieder Code, der nicht so recht will ...
Delphi-Quelltext
1: 2: 3:
| StatusLabel.Caption := 'Das wird etwas dauern ...'; ArbeiteVielUndHart(); StatusLabel.Caption := 'Fertig!'; |
Sichtbar ist immer nur "Fertig!", der Teil davor kommt gar nicht erst auf dem Bildschirm an.
Lazarus 2.0.6, Windows 10.
Ideen? :)
Narses - Di 07.01.20 00:03
Moin!
Hast du selbst geschrieben:
1. Theads. Das ist die Lösung.
2. Application.ProcessMessages; Das ist der Workaround.
cu
Narses
hydemarie - Di 07.01.20 00:11
Ah - an 2. hatte ich nicht gedacht - danke! (Getestet: Geht!)
Funktioniert synchroner HTTP-Download in einem Thread?
jaenicke - Di 07.01.20 07:57
Wobei es meistens besser ist nur ein Repaint zu machen (Abarbeitung der Paint-Nachrichten) statt Application.ProcessMessages (alle Nachrichten abarbeiten, auch solche, die potentiell die aktuelle Aktion stören).
Ja, ein Download funktioniert normalerweise problemlos in einem Thread.
OlafSt - Di 07.01.20 09:46
StatusLabel.Update bringts auch, aber ohne das waghalsige ProcessMessages.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!