![]() |
Zirkuläre Unit-Referenz umgehen
Guten Abend,
Ich weiß nicht mehr weiter ich hoffe hier kann mir jemand helfen. Es geht um die umgehung von einer Zirkuläre Unit-Referenz. hier einmal meine Situation: (Ich weiß das sieht auf den ersten Blick etwas merkwürdig aus, erspart mir aber im Programm selbst eine menge Arbeit.)
Delphi-Quellcode:
Ich weiß man kann solche Zirkuläre Unit-Referenzen umgehen indem man die uses unter implementation schreibt. Das bringt mich in diesem Fall aber leider nicht weiter. Gibt es eine andere Möglichkeit die mir helfen könnte ?
unit Unit1;
interface uses Unit2; type Tclass1=class constructor Create(class2:Tclass2); end; --- Unit Unit2; interface uses unit1; type Tclass2=class class1:Tclass1; end; Irgendwie muss das doch gehen :wall: Schonmal vielen Dank im Vorraus, ich bin für jeden Rat dankbar :-D |
AW: Zirkuläre Unit-Referenz umgehen
Nein, das geht so nicht. Das lässt sich eigentlich immer auch sauber lösen... (Events, Interfaces, ... je nachdem worum es geht)
Umgehungsmöglichkeiten, wenn es denn wirklich so sein soll: - Die andere Klasse als TObject an den Konstruktor übergeben und erst nach implementation bei Verwendung casten - Beide Klassen in eine Unit schreiben |
AW: Zirkuläre Unit-Referenz umgehen
- oder z.b. die Klasse 1 nochmals ableiten, von einer Dummy/Basis-Klasse, welche in Unit1 deklariert ist. In Unit1 dann natürlich die Basisklasse verwenden.
(1 und 2 sind austauschbar) |
AW: Zirkuläre Unit-Referenz umgehen
Schade das es keine "richtige" Lösung gibt, die idee mit der Tobjekt übergabe find ich ganz gut aber ich glaube ich stukturier dann lieber noch mal um.
Vielen Dank euch und wieder was gelernt :cheers: |
AW: Zirkuläre Unit-Referenz umgehen
Wenn du genauer schreiben würdest was du eigentlich vor hast, können wir dir vielleicht auch genauer schreiben wie die Struktur sinnvoller umgesetztwerden kann. ;-)
|
AW: Zirkuläre Unit-Referenz umgehen
Zitat:
Sobald Du aus Deinem Code-Geschreibsel eine wirkliche Aufgabe machst, findest Du zahlreiche erprobte Ansätze, wie man eine solche Konstellation sauber löst. Meine Präferenz geht da ganz klar zur Verwendung von Interfaces. Aber ich fürchte, Du bist noch nicht so weit. Egal. Lies Dich ein. Es funktioniert damit. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 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