Einzelnen Beitrag anzeigen

amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
270 Beiträge
 
Delphi 11 Alexandria
 
#1

Grafische Ausgabe aus einem Thread heraus

  Alt 23. Mai 2019, 15:08
Hallo,

ich weiß, dass man in Threads nicht auf die GUI zugreifen darf und dies nur im Synchronize() Abschnitt bewerkstelligen soll.
Wie bekomme ich es aber hin, dass Ausgaben während des Thread Ablaufs möglich sind?

Der nachfolgende Code ist jetzt ein simples Beispiel.
In meinem Fall dauert der Thread ca. 5 Sekunden. In der Zeit soll ausgegeben werden, an welcher Stelle der Abarbeitung die App sich gerade befindet.

Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
begin
  TThread.CreateAnonymousThread(procedure ()
  begin

    for var i: integer := 0 to 1000 do
    begin
      lblOutput.Text := i.ToString; // problematische Ausgabe
    end;

    TThread.Synchronize (TThread.CurrentThread,
      procedure ()
      begin
        lblOutput.Text := 'Finished';
      end);
  end).Start;
end;
Danke.
  Mit Zitat antworten Zitat