Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Recursives Interface (https://www.delphipraxis.net/185624-recursives-interface.html)

brieker 25. Jun 2015 10:30

Recursives Interface
 
Moin

ich habe mit einem Problem zu kämpfen.

Ich versuche gerade so ein Interface zu bauen.

Code:
IModelItem = interface(IInterface)
  function GetChild(aIndex: Integer): IModelItem;
  procedure SetChild(aIndex: Integer; aItem: IModelItem);
  procedure AddChild(aItem: IModelItem);
  property Child[aIndex: Integer]: IModelItem read GetChild write SetChild;
end;
Scheinbar kann man so ein konstrukt aber nicht machen.
Weis jemand wie es richtig wäre oder ob man das ganz anders machen muss.

CU Ben

BUG 25. Jun 2015 10:33

AW: Recursives Interface
 
Vorwärtsdeklarationen sind meist die Lösung für diese Art von Problemen.

mkinzler 25. Jun 2015 10:36

AW: Recursives Interface
 
Was für einen Fehler zeigt der Compiler an?

Mikkey 25. Jun 2015 10:36

AW: Recursives Interface
 
Bei mir compiliert Dein Code, was bekommst Du denn für eine Fehlermeldung?

brieker 25. Jun 2015 10:43

AW: Recursives Interface
 
Danke das mit der Vorwärtsdeklaration wars.
Ich hab es nur bisher falsch geschrieben und deshalb hab ich gedacht das es nicht geht.

So funktioniert es Danke.

Code:
IModelItem = interface;

IModelItem = interface(IInterface)
  function GetChild(aIndex: Integer): IModelItem;
  procedure SetChild(aIndex: Integer; aItem: IModelItem);
  procedure AddChild(aItem: IModelItem);
  property Child[aIndex: Integer]: IModelItem read GetChild write SetChild;
end;

himitsu 25. Jun 2015 11:05

AW: Recursives Interface
 
In Delphi sollte es auch ohne gehn.

Lazarus, oder ein richtig altes Delphi? (das sind Dinge, die man besser mit erwähnen sollte und teilweise auch in seinem ForenProfil angeben kann)

brieker 25. Jun 2015 12:29

AW: Recursives Interface
 
Delphi XE7 ist ja nun wirklich nicht richtig alt auch wenn es XE8 schon gibt.

Das Profil werde ich noch ändern.

CU Ben

himitsu 25. Jun 2015 14:30

AW: Recursives Interface
 
Komisch.

Wie lautete denn genau die Fehlermeldung? (und eventuell für welche Plattform du kompilieren wolltest)


Strg+C funktioniert in (Fehler)Dialogen und unten im Compiler-Log.
Und es lässt sich dann problemlos hier als Text reinkopieren, womöglich sogar mit [QUOTE]...[/QUOTE] drumrum.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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