Einzelnen Beitrag anzeigen

Benutzerbild von CreativeMD
CreativeMD

Registriert seit: 11. Okt 2011
127 Beiträge
 
Delphi XE2 Architect
 
#3

AW: Label Text ändern aus einem Thread heraus

  Alt 25. Sep 2014, 18:23
Ja ich will auch immer den Code sehen, aber da ist überhaupt nichts auffälliges


hier die Thread-Klasse:
Delphi-Quellcode:
TBackgroundThread = class(TThread)
    Text : String;
    procedure setLabelText;
    procedure Execute; override;
    constructor Create;
  end;

procedure TBackgroundThread.setLabelText;
begin
  if Text <> OverviewF.lblTaskBackground.Caption then
  begin
    Log.AddLog('Setting label to from "' + OverviewF.lblTaskBackground.Caption + '" to "' + Text + '"');
  end;
  OverviewF.lblTaskBackground.Caption := Text;
//Ja, ich hab auch alles möglich versucht update zu daten oder mit progressmessages zu arbeiten
end;

procedure TBackgroundThread.Execute;
begin
  while Application.Active do
  begin
    OverViewF.cmdProgressBackground.Reset;
    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;
    Sleep(10);
  end;
  Log.AddLog('Terminating Background Thread!');
end;

constructor TBackgroundThread.Create;
begin
  inherited Create;
  Log.AddLog('Creating Background Thread!');
end;
Das Thread wird beim OnShow der Form gestartet.
  Mit Zitat antworten Zitat