![]() |
Klassen-Querverweise
Hallo,
ich habe 2 Klassen, welche jeweils eine Membervariable der anderen Klassen haben. Wie kann ich die beiden Klassen so deklarieren, da dieser "Querverweis" möglich ist? Bisher bekomme ich in der Klasse die als erstes steht, logischweise, eine Fehlermeldung "Undefinierter Bezeichner" beim dekalieren der Variable des Typs von der anderen Klassen... mfG mirage228 |
Re: Klassen-Querverweise
Hallo,
das geht so:
Delphi-Quellcode:
Type
TMyObject 2 = class; TMyObject 1 = class ... property MyObject2 : TMyObject2 ... ... TMyObject2 = class ... property MyObject1 : TMyObject1 ... ... |
Re: Klassen-Querverweise
So lange du beide Klassen in einer Unit hast, kannst du forward Klassen benutzen:
Delphi-Quellcode:
type
TMyClass = class; TMySecondClass = class; TMyClass = class(TXy) FSecond: TMySecondClass; end; TMySecondClass = class(TAb) FFirst: TMyClass; end; |
Re: Klassen-Querverweise
Danke Leute. Beides funktioniert einwandfrei.
MfG mirage228 |
Re: Klassen-Querverweise
Hallo
Zitat:
|
Re: Klassen-Querverweise
Zitat:
Kann mal jemand jgb's Beitrag so abändern, dass er mit "Wenn du allerdings nicht beide Klassen in einer Unit hast, ..." anfängt? |
Re: Klassen-Querverweise
Zitat:
Wenn du ohne abstrakte Vorgänger/Interfaces arbeiten willst bräuchtest du einen multipass compiler. (wie in Java, C#, Chrome,...) |
Re: Klassen-Querverweise
c# verwöhnt! ;)
ist der langen rede kurzer sinn "nein"? |
Re: Klassen-Querverweise
Zitat:
In eine Unit packst du nur die voneinander abhängigen Interfaces oder auch abstrakte Klassen, deren Nachfolger du dann in einzelne Dateien packen kannst. So mache ich es jedenfalls meistens. (Ich hasse es wenn Units größer als 1-2 Bildschirme werden. ;) ) Und aus lauter Faulheit ein Beispiel zu tippen (was du bestimmt gleich erfragen würdest. :mrgreen: ) ![]() |
Re: Klassen-Querverweise
wie sähe es bei folgendem beispiel aus?
Delphi-Quellcode:
unit uTest;
interface uses uTest2 type Parent = class fChild : Child; end; implementation end.
Delphi-Quellcode:
unit uTest2;
interface uses uTest; type Child = class fPartent : Parent; end; implementation end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 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