-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
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
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
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:...
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
Wie du meinst, aber warum kannst du die nicht in eine Klasse verschieben? :shock:
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
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 :)
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
Hält diese Unit zufälligerweise die selben Daten, wie auch der TMeinThread verarbeitet? :P:):roll:
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
... und aus
ThreadList: TObjectList<TThreads>;
würde
ThreadList: TObjectList<TMeinThread>;, wenn du alle anderen Felder außer itemX nach TMeinThread verschieben würdest (itemX fiele ganz weg in dem Fall).
Wenn du soweit bist und damit zufrieden bist, könnten wir eventuell nochwas anderes ansprechen, wenn du magst :P
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
Die spannende Frage verbleibt: Wenn deine TThreadInfo.ThreadList nur diejenigen Einträge deiner ListView Einträge hält, die grade einen Thread benötigen; Brauchst du dann TThreads als Klasse wirklich? Oder könntest du nicht dann auch den Typ deiner ThreadList einfach auf TMeinThread ändern und einfach alle itemY, itemZ, itemQ, itemA,.... Felder in deine TMeinThread Klasse verschrieben und...
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
TThreads; Nicht nur im Konstruktor. Innerhalb einer Methode, Funktion, Destruktor, ...
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
Ah. Ich wusste unser Problem liegt wo anders :thumb:
Ja, also wenn du ganz klassisch (so wie bei einem ganz normalen Funktionsaufruf, in Konstruktoren, ...) ein Objekt mit übergibst, dann ist das nur eine Referenz auf dieses Objekt. Intern übersetzt dir dein Compiler das oft einfach nur in Pointer auf das Objekt. Also genau wie indem stackoverflow Beitrag beschrieben... Dich hindert niemand...
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
Du kannst deinem Thread übergeben was dir beliebt. Es ist ja dein Programm 8-)
Oder dein TMeinThread hat eben entsprechende (u.U. private) Felder, die im Construktor mit übergeben werden, auf die du dann von Execute aus Zugriff hast.
Wenn die Variablen auch nur dort relevant sind, kannst du diese vielleicht auch aus TThreads dorthin verschieben und dann auch von dort darauf zugreifen?
...
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
Wenn ich dich richtig verstanden habe, möchtest du innerhalb eines Threads auf ein Set von Variablen zugreifen, die für diesen Thread zur Abarbeitung seiner eigenen Tätigkeit wichtig sind. Was hindert dich daran, bei der Initialisierung des Threads diesen "Kontext", also eine Referenz auf dein übergeordnetes Objekt diesem zu übergeben? :) (also eine Referenz auf dein jeweiliges TThreads)
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
Was möchtest du denn tun? Bzw was ist dein Ziel?
Ich versuche noch immer zu verstehen, was genau dein Problem ist. :)
(totally unrelated zu Interfaces: Ich glaube, dass du grundsätzlich das Prinzip von Interfaces schon verstanden hast, wenn du ein bisschen Objektorientierung verwendet hast; Interfaces sind nichts anderes als Klassen ohne Implementierung. Habe keine Angst davor! :P Der...
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
Also wenn das eine 1:1 Zuordnung ist, dann kannst du vielleicht dort, wo du Zugriff auf die Klasse brauchst eine Referenz dorthin vergeben (also in dem Fall die TThreads Referenz).
Im Allgemeinen bin ich aber gegen zirkuläre Referenzen (z.B. Klasse A kennt Klasse B und Klasse B kennt Klasse A,...), weil das oft auf ein generelleres Problem im Entwurf zeigt, das man eventuell refactoren kann (oft...
-
Forum: Programmieren allgemein
by BrightAngel,
14. Apr 2017
Was passiert denn genau außenrum?
Du suchst jetzt aber nicht thread-local Variablen?
(Wenn ja: Titeländerung zu "Threadlokaler Zugriff auf Variablen"?) :idea:
Vielleicht lässt sich dein Problem aber auch auf makroskopischerer Ebene umgehen? Was möchtest du denn genau tun? Bzw was ist das Ziel? :)
Brighty