Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thread) (https://www.delphipraxis.net/192395-frage-zu-threads-objectlist-mit-klassen-jede-klasse-hat-variablen-ggf-1-thread.html)

a.def 14. Apr 2017 21:30

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Ahh ok habs kapiert.
Das geht leider nicht. Denn es gibt ja nicht nur den Thread TMeinThread. Es gibt noch eine weitere Unit die kein Thread ist.

Näheres kann ich aber erst sagen wenn ich mir später alles nochmal angucke.

BrightAngel 14. Apr 2017 21:34

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Hält diese Unit zufälligerweise die selben Daten, wie auch der TMeinThread verarbeitet? :P:):roll:

a.def 14. Apr 2017 21:39

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Das weiß ich gerade nicht aber es gibt ein anderes Problem.

meine erste Unit die TTheads = class und den constructor usw. enthält hat in der uses-klausel die Unit stehen die der eigentliche Thread ist.
In der Thread-Unit müsste ich dann auch wieder in die uses die Unit eintragen die TThreads enthält. Das geht leider nicht (zirkulär :( )

Mein Vorhaben ist also am Ende :stupid:

Ich könnte das Problem umgehen, indem ich die Thread-Unit in die andere Unit, die den Thread erzeugt, verfrachte aber das will ich ehrlich gesagt nicht.

BrightAngel 14. Apr 2017 21:45

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Genau. Das meinte ich vorhin. Daher mein Vorschlag, das zu verschieben. Was macht denn deine andere Klasse, die kein Thread ist (aber die dich vorhin hinderte die Liste von TThreads zu TMeinThread zu ändern)? Da lässt sich sicher nochwas verschieben. :wink:
Nichts ist am Ende :)

a.def 14. Apr 2017 21:56

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Verschieben in eine Unit geht ja auch nicht.
Delphi-Quellcode:
type
 TThreads class
 ...
 constructor Create(xyz: TMeinThread);
 itemX: TMeinThread;
end;

type
 TMeinThread = class(TThread)
 ...
 constructor Create(xyz: TThreads);
end;
TThreads braucht TThreads und TMeinThread braucht TThreads. Egal wie man es dreht und wendet.

Ich glaube ich bleibe einfach bei den zwei Variablen bevor ich hier jetzt alles komplett auseinander nehme.

BrightAngel 14. Apr 2017 22:00

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Wie du meinst, aber warum kannst du die nicht in eine Klasse verschieben? :shock:

a.def 14. Apr 2017 22:02

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Siehe hier

Delphi-Quellcode:
type
 TThreads = class
 ...
 constructor Create(xyz: TMeinThread);
 itemX: TMeinThread;
 itemY: ....;
end;

type
 TMeinThread = class(TThread)
 ...
 constructor Create(xyz: TThreads);
end;
TThreads-constructor braucht TMeinThread, was unten drunter steht (geht nicht)
TMeinThread-contructor braucht TThreads, was oben drüber steht (das geht).

Und egal wie ich es wende, irgendeine der beiden Klassen braucht immer irgendwas was nicht zur Verfügung steht.

Ich könnte ja auch, wie du sagtest, TThread wegmachen und nur TMeinThread in der ObjectList verwenden aber dann habe ich echte Threads rumliegen die man ggf. gar nicht braucht.

Weil nicht jeder ListView-Eintrag braucht einen Thread (itemX). Manche brauchen auch nur ein itemY, was kein Thread ist.


Edit habe gerade nachgeguckt. itemY ist auch ein Thread aber in keinster Weise wie der von itemX.
Ich könnte irgendwie beide Thread-Units zu einer verschmelzen und dann im Konstruktor bestimmen, welcher Code in der Execute-Methode ausgeführt wird aber mhh..

BrightAngel 14. Apr 2017 22:09

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Stelle dir vor, du hättest ein TData Objekt. Nur mal so als Gedankenspiel...
Dieses TData könnte die Daten halten, die du für deine ListView brauchst. Stelle dir vor, dass manche TData Instanzen in Wahrheit einfach vom Typ TMeinThread sind. Andere Instanzen (die, die keinen Thread brauchen) von TData sind in Wahrheit von einem anderen Typ. Stelle dir vor das ginge. Würde dir das helfen?

Edit: Du könntest auch beide Threads von der selben Basisklasse erben lassen und dann in der Liste einfach deinen Basisklassentyp setzen. Die beiden Kindthreadklassen dieser Basisklasse haben dann einfach unterschiedliche Execute Implementierungen.
Konkret: TMeinBasisThread erbt von TThread, TMeinXThread erbt von TMeinBasisThread, TMeinYThread erbt von TMeinBasisThread; ThreadList enthält Typen von TMeinBasisThread und TMeinBasisThread enthält alle wichtigen Felder, die du für die ListView brauchst.

a.def 14. Apr 2017 22:23

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Entweder ist es spät, oder ich bin einfach nur dumm. Denn verstanden habe ich kein bisschen :cry:
Ich lasse einfach erstmal alles so wie es ist.

BrightAngel 14. Apr 2017 22:30

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
 
Ich tippe auf zu spät. Wenn du magst, können wir das gerne vertagen. Ich würde da noch nicht aufgeben an deiner Stelle. Geduld zahlt sich aus 8-)
Schlaf gut! :P:thumb:

Brighty


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.
Seite 3 von 5     123 45      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz