AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Zirkuläre Unit-Referenz umgehen
Thema durchsuchen
Ansicht
Themen-Optionen

Zirkuläre Unit-Referenz umgehen

Ein Thema von sportkeks · begonnen am 10. Mai 2012 · letzter Beitrag vom 10. Mai 2012
Antwort Antwort
sportkeks

Registriert seit: 29. Apr 2009
73 Beiträge
 
#1

Zirkuläre Unit-Referenz umgehen

  Alt 10. Mai 2012, 16:14
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

Schonmal vielen Dank im Vorraus, ich bin für jeden Rat dankbar
Now we're taking a break to eat some cake.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Zirkuläre Unit-Referenz umgehen

  Alt 10. Mai 2012, 16:26
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
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zirkuläre Unit-Referenz umgehen

  Alt 10. Mai 2012, 16:49
- 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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
sportkeks

Registriert seit: 29. Apr 2009
73 Beiträge
 
#4

AW: Zirkuläre Unit-Referenz umgehen

  Alt 10. Mai 2012, 18:25
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
Now we're taking a break to eat some cake.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Zirkuläre Unit-Referenz umgehen

  Alt 10. Mai 2012, 18:28
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#6

AW: Zirkuläre Unit-Referenz umgehen

  Alt 10. Mai 2012, 21:13
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.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 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