Hallo DPler!
Mal eine rein theoretische Frage zur Delphi Programmierung:
Ich habe einen Typ von dem ich mehrere Instanzen erstellen will.
Innerhalb der create Methode soll dem Objekt nun ein eindeutiger Identifikator erstellt werden. D.H. eine Integerzahl.
Dazu muss ich aber wissen welche Zahlen schon vergeben sind. Weiterhin soll dieser Identifikator dann in der 1.
Unit in einem Array abgespeichert werden, damit ich nachher auf das Objekt über seinen Identifikator im Array zugreifen kann.
Ich will das ganze NICHT über Variablenübergabe an den Konstruktor machen, weil ich das gleiche Prinzip noch für aufwändigere Sachen nutzen muss.
Das Problem was sich ja jetzt stellt ist, dass ich in der einen
Unit die Objekte erstelle und in der anderen den Identifikator erstelle. Ich müsste also in der ersten
Unit einen Zähler mitzählen lassen und in der 2.
Unit den Zähler in der ersten
Unit auslesen. Dazu müsste ich aber in den Uses Klauseln die jeweilige andere
Unit einbinden und würde damit dann einen fehler auf Grund von zyklischer Referenzierung bekommen.
Wie kann ich das umgehen?
Es würde ja reichen eine Variable zu haben, die ich global im gesamten Programm, also in jeder
Unit, auslesen kann.
Muss ich dazu gleich eine ganze neue
Unit erstellen?
Das Problem mit der Zyklusbildung ergibt sich auch, wenn ich jetzt zum Beispiel in der 1.
Unit ein Objekt aus
Unit 2 erstelle und dann in diesem Objekt eine Methode ausführe, die dann Variabeln in
Unit 1 manipulieren soll.
Um das ganze mal bildhafter darzustellen:
Ich habe eine
unit mit einem Formular.
Und ich habe eine Auto
Unit.
Wenn ich dem Auto jetzt sage es soll beschleunigen, dann will ich, dass das Auto die Geschwindigkeitsanzeige auf dem Formular verändert.
Das ist zwar jetzt nicht so das tolle Beispiel, weil sich das auch anders lösen ließe, aber so in der Art möchte ich das gerne haben.
Gruß
Jan