Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Zirkuläre Unit-Referenz umgehen (https://www.delphipraxis.net/168238-zirkulaere-unit-referenz-umgehen.html)

sportkeks 10. Mai 2012 16:14

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:
unit Unit1;

interface

uses
  Unit2;

type
  Tclass1=class
    constructor Create(class2:Tclass2);
end;

---

Unit Unit2;

interface

uses
  unit1;

type
  Tclass2=class
    class1:Tclass1;
end;
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 ?

Irgendwie muss das doch gehen :wall:

Schonmal vielen Dank im Vorraus, ich bin für jeden Rat dankbar :-D

jaenicke 10. Mai 2012 16:26

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

himitsu 10. Mai 2012 16:49

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)

sportkeks 10. Mai 2012 18:25

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:

jaenicke 10. Mai 2012 18:28

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. ;-)

neo4a 10. Mai 2012 21:13

AW: Zirkuläre Unit-Referenz umgehen
 
Zitat:

Zitat von sportkeks (Beitrag 1165960)
Schade das es keine "richtige" Lösung

Was auch immer Du darunter verstehen könntest: Eine richtige Lösung für ein falsches Design gibt es eigentlich nirgends.

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 01:58 Uhr.

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