Problem:
Das Label Aktualisiert sich nur, wenn die Maus bewegt wird, ansonsten bleibt es stehen bzw. ändert sich nur sporadisch.
Welche Alternative habe ich dazu?
Wenn es um die Anzeige geht kannst noch mehr ausprobieren
Delphi-Quellcode:
label1.tag := label1.tag +1; // GetTickcount löst nicht in Milisekunden auf also einfach in Schleifen durchläufe auflösen. Einfach weil ich es mag.
label1.caption := label1.tag.tostring;
label1.invalidate; //könnte sein ,dass das besser ist als update
label1.refresh; //könnte sein ,dass das besser ist als update
Form1.invalidate; //Da label evtl ein TGraphicControl istmacht es vielleicht mehr her wenn man ein übergeordnetes TWincontrol invalidiert.
Application.Processmessages; //hier werden die Änderung auch gezeichnet!
Es geht jetzt nur darum während Schleifen im Hauptthread Die Anzeige zu aktualisieren.
Aus Threads heraus musst du die Aktualisierung innerhalb von TThread.Synchronize ausführen, wenn du sie erzwingen willst...das würde aber den vorteil von Threads zunichte machen!
Oder Du verwendest TThread.Queue oder TThread.ForceQueue . Dann würde die Aktualisierung(oder anderer code) irgendwann, wenn der Hauptthread dran ist, durchgeführt.