Einzelnen Beitrag anzeigen

Synollus

Registriert seit: 29. Dez 2008
49 Beiträge
 
#1

Frage zu Lösungsmöglichkeiten bei Kreuzverweis von Units

  Alt 23. Mai 2009, 09:36
Hallo,

ich habe 2 Klassen die auf sich selbst verweisen:

Delphi-Quellcode:
unit uKnot;

interface

uses uEdge;

type
  TKnot = class(TObject)
  private
    Next: TKnot;
    Edge: TEdge;
    Data: String;
    ....
  public
    ...
  end;
Delphi-Quellcode:
unit uEdge;

interface

uses uKnot;

type
  TEdge = class(TObject)
  private
    ToAd : TKnot;
    Next : TEdge;
    Weight: Integer;
  public
    ...
  end;
Ich habe jetzt 2 Lösungsmöglichkeiten gefunden.

1.: Alles in eine Unit:

Delphi-Quellcode:
unit uKnotEdge;

interface

type
  TKnot = class(TObject)
  private
    Next: TKnot;
    Edge: TEdge; // [Fehler] uKnotEdge.pas(9): Undefinierter Bezeichner: 'TEdge'
    Data: String;
    ...
  public
    ...
  end;

  TEdge = class(TObject)
  private
    ToAd : TKnot;
    Next : TEdge;
    Weight: Integer;
  public
    ...
  end;

implementation

...
Er erkennt (bei dem Kommentar) TEdge nicht, weil es erst später in der Unit kommt. Tausche ich die beiden Klassen, habe ich dasselbe Problem in Grün mit TKnot.

2.: Eine 3. Unit. Das habe ich noch nicht verstanden. Ich habe einiges rumprobiert, was ich in anderen Threads gelesen habe, aber ich habe das nicht so richtig verstanden. Könnte das einer für mich mal mit meinem Beispiel andeuten?
  Mit Zitat antworten Zitat