Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#7

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 20. Sep 2022, 11:52
Der Progress-Parameter ist sicher, weil da macht der Generic die anonyme Methode sich eine Copie von.

Bei OnProgress hat nicht, denn dort hat der nur eine Kopie des Self, welches nur so lange gültig ist, wie die TMyWorker-Instanz läuft.
Bei Synchronize kein Problem ... aber bem Queue muß man aufpassen.
Allerdings könnte man sich auch eine lokale Variable für OnProgress in ReportProgress anlegen ... dann ist TMyWorker egal und man muß nur noch auf das achten, wohin das Event geht, also TMainForm (hier gäbe es in Queue(procedure Möglichkeiten das gegenzuprüfen, z.B. über Application.MainForm, bzw. über Screen.Forms, ob der Form-Zeiger noch valide ist).


Ansonsten:
TStaticText, bzw. TPanel anstatt TLabel
und dann kann es als "richtiges" WinControl auch auf Messages reagieren,
also SendMessage(WM_SETTEXT), bzw SetWindowText und die ProgessBar auf PostMessage mit PBM_SETPOS.

SendMessage, weil wegen dem "PChar", der ja bei Ausführung noch gültig sein muß.
In das WndProc des Label kann man auch eine Message mit "Interger"-Parameter gängen, welcher Diesen nach String übersetzt und an Caption übergibt ... das ginge dann wieder als PostMessage.

PostMessage direkt an das Fenster/Control ... verschwindet das Fenster/Control vor Abarbeitung der Message in der MessageQueue (PostMessage), dann räumt Windows diese Message orgendlich auf ... kein eventuelle Ausführen nach Freigabe des Controls.

Bei der TThread.Queue wäre es also nett, könnte man sie auch (optional) an ein TWinControl/HWND oder zumindestens an ein TControl hängen. (dann würde Windows/Delphi die Prüfung ob noch da übernehmen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Sep 2022 um 11:54 Uhr)
  Mit Zitat antworten Zitat