Zum ursprünglichen Problem:
Zitat von
stoxx:
kennt irgendjemand eine clevere Möglichkeit um nicht Haufen Umwege gehen zu müssen ?
Ich habe zwei Objecte in zwei verschiedenen Units.
Und will von jedem Object einen Zeiger auf das andere Object speichern können.
in Unit1:
Code:
TClass1 = class
p : TClass2;
end;
in Unit2:
Code:
TClass2 = class
p : TClass1;
end;
dummerweise muss ich nun in Unit2 die Unit1 in den Uses Klauseln einfügen und umgekehrt.
Dummerweise kommt ja nun die Meldung "Überkreuzender Bezug zweier Units"
HAb schon einige ZEit gegrübelt, kann man das irgendwie über eine dritte
Unit umgehen ?
Die effektivste Umgehung des Problems dürfte es wohl sein, das Problem GANZ aus der Welt zu schaffen.
Nachdem ich heute die neue Version von
Chrome getestet habe* und da stoxx mittlerweile auch das .Net Framework entdeckt hat...
Wie wäre es mit Chrome? Das kennt diese Probleme dank eines modernen Compilers nicht mehr.
Im Gegensatz zu Delphi.Net kann man in Chrome namespaces so verwenden wie sie gedacht waren. (Und muss sich nicht weiterhin mit Dateinamen nerven lassen
)
Die Dateinamen sind absolut unerheblich
Erste Datei:
Delphi-Quellcode:
namespace EinNamespace;
interface
type
Class1 = public class
private
fClass2 :Class2;
public
property Class2 :Class2 read fClass2;
end;
implementation
end.
Zweite Datei:
Delphi-Quellcode:
namespace EinNamespace;
interface
type
Class2 = public class
private
fClass1: Class1;
public
property Class1 :Class1 read fClass1;
end;
implementation
end.
Beide Klassen sind im gleichen Namespace deklariert und man muss rein gar nichts rumbasteln, rumschrauben oder sonstwas umbiegen.
Ich meine genau so sollte es doch sein.
Sicher ist es in solchen Fällen oftmals handlicher gewisse Abstraktionen auf das Wesentliche zu machen.
Aber wenn man es macht, dann nur weil man es will, nicht weil der Compiler zu antiquiert ist.
*Ich fand es übrigens so gut, dass ich es nach 15 Minuten testen gleich gekauft habe.
Nach all den Face lifts seit meiner vorherigen ur-alt-beta Version erscheint mir Chrome sogar mächtiger als C#, hat alle
IMHO sinnlosen Beschränkungen von Delphi über Board geworfen. Aber trotzdem diese schlichte Eleganz bewahrt, die Pascal auszeichnet...