Hallo,
Bisher habe ich das Problem von überkreuzenden Units meist
irgendwie umschiffen können. Sei es durch Forwad-Declarations oder
ähnlich (eher unschöne) Methoden.
Allerdings habe ich im Moment ein Problem, bei dem ich keinen Weg finde,
wie ich die Abhängigkeiten ohne Überkreuzung abbilden kann.
Folgende Situation:
Ich habe zwei Dialoge, die einander aufrufen können.
Dialog1 Ist eine Liste. Dialog2 ist der Inhalt des markierten Elements
in der Liste von Dialog1. (Der Sinn dieser Geschichte ist in der vereinfachten
Situation weniger erkennbar... aber es ist nötig, dies so zu machen).
Dialog1 kann allleine stehend angezeigt werden. Wird allerdings ein
Button in Dialog1 geklickt, öffnet sich Dialog2. Das selbe gilt für diesen:
Es ist ein Button, um Dialog1 zu öffnen, vorhanden.
Das Problem entsteht allerdings erst aus diesem Umstand:
Da beide Dialoge mehrmals instanziiert werden können, kann ich die
global deklarierten Variablen der Klassen nicht nutzen. Stattdessen muss
Dialog1 einen Member vom Typ Dialog2 haben und umgekehrt.
Und hier tritt das Problem auf....
Der Code müßte quasi so aussehen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| Unit Dialog1; uses Dialog2; type Dialog1 = class(TForm) ... MyDialog2: TDialog2 end; implementation ...
//////////////////////////////
Unit Dialog2; uses Dialog1; type Dialog2 = class(TForm) ... MyDialog1: TDialog1 end; implementation ... |
Kann mir jemand helfen, aus dieser Zwickmühle raus zu kommen?
Danke, Daniel