Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi zyklische referenzierung (https://www.delphipraxis.net/61365-zyklische-referenzierung.html)

Jan 20. Jan 2006 14:07


zyklische referenzierung
 
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

Ferber 20. Jan 2006 14:23

Re: zyklische referenzierung
 
Im Implementationteil auf die andere Unit verweisen.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Unit2, // hier wird Unit2 referenziert
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

end.

Delphi-Quellcode:
unit Unit2;

interface

implementation

uses unit1; // hier wird Unit1 referenziert

end.
:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 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