![]() |
Anwendung von Synchronize in TThread
Hallo,
ich möchte aus einem TThread auf dem, auf dem Hauptformular befindlichen progressbar ein progressbar1.StepIt ausführen. Leider komme ich mit der Syntax nicht zurecht.:oops: Ich versuche
Delphi-Quellcode:
MyThread.Synchronize(progressbar1.StepIt);
Irgendetwas fehlt da. Habe damit noch nie gearbeitet und die gefundenen Beträge sind auf diese sicher simpele Angelegenheit nicht eingegangen. |
AW: Anwendung von Synchronize in TThread
Delphi-Quellcode:
{LokalerNamespace.}Synchronize({LokalerNamespace.}progressbar1.StepIt);
MyThread.xxx ? Du bist doch schon im Thread (hoffentlich in einer Methode der Threadklasse), dann solltest du niemals soeine externe gloable Variable verwenden, sondern immer nur Self (was man auch weglassen könnte). Tja, du bist im Thread, also suchst du progressbar1 auch in der Threadklasse, womit es natürlich selbstverständlich ist, daß diese dort nicht gefunden wird. :zwinker: > einfach: Man gehe über die globale Form-Variable. > ordentlich: du übergibst z.B. im Constructor dem Thread die Form-Referenz, bzw. eigentlich besser eine DoProgressStep-Callback-Methode, welche sich der Thread speichert und über die du dann threadintern gehst. |
AW: Anwendung von Synchronize in TThread
Die einfache Möglichkeit:
Delphi-Quellcode:
uses
Unit3; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var Thread: TBeispiel; begin Thread := TBeispiel.Create(True); Thread.FreeOnTerminate := True; Thread.Resume; end; procedure TForm1.Update; begin ProgressBar1.StepIt; end;
Delphi-Quellcode:
implementation
uses Unit1; { TBeispiel } procedure TBeispiel.Execute; var i: Integer; begin for i := 0 to 9 do begin Update; sleep(1000); end; end; procedure TBeispiel.Update; begin Synchronize(Form1.Update) end; |
AW: Anwendung von Synchronize in TThread
Danke für die schnelle Hilfe, komme jetzt zurecht:-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz