Einzelnen Beitrag anzeigen

barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Vermeiden zirkalarer Bezüge

  Alt 1. Sep 2004, 10:00
Hallo,
ich habe da ein Problem mit dem Einbinden von Units im uses-Abschnitt:
Delphi-Quellcode:
unit InterfaceDatabase;

interface

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

type
  IDatabase = interface (IInterface)
    procedure Load(PDObject: TPDObject; const ID: TObjectID); virtual; stdcall;
  end;
Dies ist die Deklaration meines Interfaces, welches die Unit ProblemDomain benötigt.

Delphi-Quellcode:
unit ProblemDomain;

interface


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

const
  NotAssigned=0;

type
  TObjectID = type Integer;
  TPDObject = class (TObject)
  private
    FDatabase: IDatabase;
    FID: TObjectID;
    function GetID: TObjectID;
  public
    function IDToStr(Value: TObjectID): string;
    procedure Load(PDObject: TPDObject; const ID: TObjectID); virtual;
  end;
...

procedure TPDObject.Load(PDObject: TPDObject; const ID: TObjectID);
begin
  Assert(FDMObject<> NIL, 'Kein Datenobjekt vorhanden!');
  FDMObject.Load(self,ID); // Hier muss das Interface InterfaceDatabase bekannt sein.
end;
Kann ich die zirkulären bezüge vermeiden? Wie? Ich hätte gern zwei getrennte Units.
Danke.
Gruß,

Barnti
  Mit Zitat antworten Zitat