SendMessage und
PostMessage 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 (
TStaticText) 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);