![]() |
Vermeiden zirkalarer Bezüge
Hallo,
ich habe da ein Problem mit dem Einbinden von Units im uses-Abschnitt:
Delphi-Quellcode:
Dies ist die Deklaration meines Interfaces, welches die Unit ProblemDomain benötigt.
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;
Delphi-Quellcode:
Kann ich die zirkulären bezüge vermeiden? Wie? Ich hätte gern zwei getrennte Units.
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; Danke. |
Re: Vermeiden zirkalarer Bezüge
Hai barnti,
versuche mal in deiner ProblemDomain die InterfaceDatabase erst nach dem implementation einzubinden. |
Re: Vermeiden zirkalarer Bezüge
Hallo,
du mußt die Units einfach im Implementation teil einbinden. |
Re: Vermeiden zirkalarer Bezüge
Hi Sharky,
Zitat:
|
Re: Vermeiden zirkalarer Bezüge
Dann musst Du die Dinge, welche beide Units im Interface benötigen in eine dritte Unit auslagern. Ansonsten doch eine, aber das willst Du ja nicht.
...:cat:... |
Re: Vermeiden zirkalarer Bezüge
Zitat:
|
Re: Vermeiden zirkalarer Bezüge
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
dann stellt sich allerdings die Frage wie ich so etwas im Modell darstelle. Ich möchte ja eigentlich im Modell jeweils eine eigene Klasse. Ich habe mal mein Modell eingefügt... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz