Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
Delphi 7 Enterprise
|
Vermeiden zirkalarer Bezüge
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
|
|
Zitat
|