Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.963 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Label Text ändern aus einem Thread heraus

  Alt 25. Sep 2014, 19:50
MSDN-Library durchsuchenSendMessage und MSDN-Library durchsuchenPostMessage synchronisieren den Aufruf auch in den Thrad, in welchem die Windows-Komponente erstellt wurde, womit man dort selber nichts synchronisieren müsste.
Nur hat TLabel ja kein Handle, aber das wirkliche LABEL (Delphi-Referenz durchsuchenTStaticText) hätte Eines.


Und wenn man erstmal lernt, daß man doppelten Code besser vermeiden sollte und sich dann auch noch an die anonymen Methoden gewöhnt hat, dann wird das Leben viel einfacher.


Zitat:
Delphi-Quellcode:
if Tasks.Count > 0 then
begin
  Tasks[0].runTask(OverViewF.cmdProgressBackground);
  Text := Log.getLastRow;
  Synchronize(setLabeltext);
end
else
begin
  Text := 'Nothing to do';
  Synchronize(setLabeltext);
end;
Delphi-Quellcode:
if Tasks.Count > 0 then begin
  Tasks[0].RunTask(OverViewF.cmdProgressBackground);
  Text := Log.GetLastRow;
end else
  Text := 'Nothing to do';
Synchronize(SetLabeltext);
Delphi-Quellcode:
if Tasks.Count > 0 then begin
  Tasks[0].RunTask(OverViewF.cmdProgressBackground);
  Text := Log.GetLastRow;
end else
  Text := 'Nothing to do';
Synchronize(procedure
  begin
    if Text <> OverviewF.lblTaskBackground.Caption then
      Log.AddLog('Setting label to from "' + OverviewF.lblTaskBackground.Caption + '" to "' + Text + '"');
    OverviewF.lblTaskBackground.Caption := Text;
  end);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (25. Sep 2014 um 19:52 Uhr)
  Mit Zitat antworten Zitat