Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Threads mit dem TThread Objekt (https://www.delphipraxis.net/981-threads-mit-dem-tthread-objekt.html)

Stephan 4. Okt 2002 08:49


Threads mit dem TThread Objekt
 
Hallo,

Ich habe ein Programm erstellt in dem ich mehrere Threads verwenden will. Da ich über die Threads die VCL ansprechen möchte brauche ich ja das TThread Objekt. Das hab ich erstellt und die Funktion eingefügt und auch den entsprechenden Inhalt mit Synchronize in der execute procedure eingefügt.

in form1 hab ich das ThreadObjekt (unit2) über uses eingefügt. Soweit funktioniert alles ganz gut. Sobald ich allerdings aus der unit2 auf das form1 zugreifen will um z.B. caption von form1 zu ändern müsste ich ja die unit1 in der unit2 in uses eintragen. Aber genau dann erhalt ich in der unit1 den Fehler dass unit2 einen Querverweis auf unit1 enthält.

Weiß jemand von euch wie ich das Problem umgehen kann?

MrSpock 4. Okt 2002 08:55

Hallo Stephan,

zirkuläre Verweise von 2 Units sind möglich. Du musst dazu das eine USES im interface Bereich, das in der anderen Unit dann im implementation Bereich verwenden.

Udontknow 4. Okt 2002 11:05

Hi!

Ist jetzt eher Geschmackssache, aber ich vermeide zirkuläre Verweise.

Wenn dein TThread-Nachfahre irgendetwas in eine Caption schreiben soll, dann spendiere ihm doch einfach ein Feld namens AusgabeCaption:TCaption im Public-Bereich und weise diesem Zeiger dann die eigentliche Caption durch einen Befehl in Form1 zu:

Code:
MeinThread.AusgabeCaption:=CaptionFuerDieAusgabe;
Dadurch erreichst du dann Unabhängigkeit von Form1, d.h. du kannst deinen TThread-Nachfahren auch in anderen Units (oder Programmen) erstellen/benutzen.

Cu, :D
Udontknow


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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