Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Threads und UI aktualisieren

  Alt 30. Okt 2019, 13:00
Was übersehe ich?
Wenn Du willst, dass Deine UI upgedated wird, musst Du die Procedure, die den Thread gestartet hat verlassen.

Du kannst nicht einen Thread erzeugen und dann "modal" warten... Du musst immer erst die Kontrolle an den UI-Tread/ Main-MessageQueue zurück geben.

Nur wenn die Main-Messagequeue läuft, kann sich die UI aktualisieren. Also überhaupt auf Queue oder Synchronize reagieren. "Früher" hat man zur "NOT" Application.Processmessages aufgerufen. Aber wie wir alle wissen,sollte man das nur im "NOTFALL" machen, weil es in der Regel nur zu Problemen führt.

Beispiel : Ein scheinmodales Fenster ruft in einer Schleife Application.Processmessages auf, daher können andere Programmteile aufgerufen werden, die dann in dieser Schleife laufen... Probleme sind vorprogrammiert.

Mavarik

PS.: Abgesehen davon: Unter VCL geht Dein Aufruf vielleicht - Unter FMX wird die Button Click Animation schon nicht mehr gezeigt (je nach Style). Du solltest auch den Button auf enabled := false setzen. (So wie in meinen Beispiel aus dem anderen Thread)

Geändert von Mavarik (30. Okt 2019 um 13:02 Uhr)
  Mit Zitat antworten Zitat