Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Einer property mehrere Interfaces zuweisen? (https://www.delphipraxis.net/119000-einer-property-mehrere-interfaces-zuweisen.html)

kaiser1401 19. Aug 2008 11:19


Einer property mehrere Interfaces zuweisen?
 
Hallo,

ich möchte eine property in einem Interface einrichten das nur Objekte von solchen Typen annimt die zwei bestimmte interfaces implementieren.

Delphi-Quellcode:
 IInt_1 = interface (IInterface)
  {GUID}
  {ein paar funktionen und properties} 
 end;

 IInt_2 = interface (IInterface)
  {GUID}
  {ein paar funktionen und properties} 
 end;
 
 IInt_3 = interface (IInterface)
  {GUID}
  {ein paar funktionen und properties} 
  property ObjectImplementingBothInterfaces: // Was muss ich hier als Typ angeben damit nur Objekte angenommen werden die beide Intefaces implementieren?
 end;
Alternativ würde mir auch helfen wenn ich ein neues Interface aus den anderen erstellen könnte. In etwa sowas:

Delphi-Quellcode:
 IInt_Merge = interface (IInt_1,IInt_2)
  {GUID}
 end;
Dann würd ich als typ halt IInt_Merge angeben.

Weiß jemand wie ich sowas Klassen-unabhängig lösen kann?

Deep-Sea 19. Aug 2008 11:26

Re: Einer property mehrere Interfaces zuweisen?
 
Du musst in der write-Routine der Property prüfen, ob der neue Wert deine Kriterien erfüllt - wenn nicht kannst du z.B. eine Exception auslösen :wink:

kaiser1401 19. Aug 2008 11:29

Re: Einer property mehrere Interfaces zuweisen?
 
Auf die Idee bin ich auch gekommen, nur würde ich das Abfangen gerne an das Interface koppeln.

thabaker 19. Aug 2008 11:32

Re: Einer property mehrere Interfaces zuweisen?
 
tja das geht leider nicht automatisch. Das Property muss einen! Typ haben, und der kann natürlich ein Interface sein. Aber es kann von Haus aus nicht auf das zweite Interface überprüfen. Dazu muss du tatsächlich in der Write-Methode diese Bedingung prüfen.

kaiser1401 19. Aug 2008 11:39

Re: Einer property mehrere Interfaces zuweisen?
 
Mh, schade. Ich glaub so langsam versteh ich warum es unter umständen Bedarf für so Sachen wie Mehrfachvererbungen in anderen Sprachen gibt ;-)

mkinzler 19. Aug 2008 11:41

Re: Einer property mehrere Interfaces zuweisen?
 
Mehrfachvererbung erzeugt aber mehr Probleme als sie löst. Deshalb haben neuere Sprachen wie Java, c# dieses Feature auch nicht mehr.Zudem dein Problem auch bei Mehrfachvererbung von Klassen bestehen würde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz