![]() |
Frage zu Threads Zugriff auf Methoden von VCL-Objekten
Hallo,
habe hier in einem Lehrbuch stehen, dass man auf Methoden von VCL-Objekten nicht direkt in der Execute-Methode zugreifen darf, sondern das mit Hilfe der Synchronize-Methode machen soll. Heißt das: 1. dass ich z.B "Form1.Memo1.Lines.Add(irgendwas)" in diese Synchronize-Methode packen muss? 2. wenn ja, könnte ich ja auch in diese Synchronize-Methode eine Procedur schreiben die zB so aussieht:
Delphi-Quellcode:
und dann
Procedure MyThread.MemoOutIrgendwas;
begin Form1.Memo1.Lines.Add(irgendwas) end;
Delphi-Quellcode:
Das geht zwar, ich kann aber die Procedur MemoOutIrgendwas nicht mit einem Parameter belegen, da bekomme ich immer ne Fehlermeldung.
Synchronize(MemoOutIrgendwas)
Gruß Gambit |
Re: Frage zu Threads Zugriff auf Methoden von VCL-Objekten
der methode synchronize kannst du keine parameter geben weil sie dann von einem anderen typ wäre. Eine Möglichkeit wäre das du im private-teil des threads eine variable deklarierst da einen wert reinschreibst, dann synchronize aufrufst und in der syncronisierten methode den wert aus der variablen liest
|
Re: Frage zu Threads Zugriff auf Methoden von VCL-Objekten
Danke für die schnelle Antwort! Aber nochmal zu Frage 1, also dass ich Form1.Memo1.Lines.Add(irgendwas) in die Synchronize-methode pachen sollte ist richtig?
Gruß Gambit |
Re: Frage zu Threads Zugriff auf Methoden von VCL-Objekten
Moin Gambit,
grundsätzlich sollte das so funktionieren, wie Du es unter 2. geschrieben hast. Du musst halt sehen wo Du den Wert reinschreibst, den Du mit Add hinzufügen willst. Z.B. kannst Du dafür ein privates Feld des Thread Objektes verwenden. |
Re: Frage zu Threads Zugriff auf Methoden von VCL-Objekten
Siehe dazu auch meine Thread-Tutorial:
![]() |
Re: Frage zu Threads Zugriff auf Methoden von VCL-Objekten
Besten Dank!!
Gruß Gambit |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 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