Thema: Delphi Units überkreuzen

Einzelnen Beitrag anzeigen

Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Units überkreuzen

  Alt 15. Mär 2008, 22:22
Hallo,

bisher habe ich immer gedacht, dass man zwei Units nicht überkreuzen kann. Heute wurde ich eines besseren belehrt.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit2;

...
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit1;
--> So kannte ich es bisher immer. Das funktioniert auch nicht. Es kommt folgende Meldung:
[Pascal Fataler Fehler] Unit1.pas(7): F2047 Zirkuläre Unit-Referenz auf 'Unit1'

Wenn ich es aber so mache, dann funktioniert es:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

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

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

end.
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

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

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

end.
Meine Frage ist nun, ob das ein Bug in Delphi ist oder steckt das vieleicht auch ein sinn dahinter?

Warum gehte es nicht wenn ich die Unit oben einbinde und wenn ich es unten mache, dann geht es?!?!?!

Das verwirrt mich jetzt ein bisschen...

Wer kann meine dunklen stellen ein bisschen beleuchten?

MFG Christian18
  Mit Zitat antworten Zitat