Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Typabfrage Interface (https://www.delphipraxis.net/12479-typabfrage-interface.html)

scouty 28. Nov 2003 11:25


Typabfrage Interface
 
Meine Frage an das Forum ist folgende:


Ich habe ein Interface ICorrelation deklariert, welches von verschiedenen Klassen implementiert werden soll.

Innerhalb einer Klasse TCorrelation, welche das Interface implementiert, möchte ich in der Methode CheckObject eine Typabfrage machen, d.h. ich möchte herausbekommen , ob die Klasse, die das Interface ICorrelation implementierte auch vom Typ TCorrelation ist, damit ich später eine Typumwandlung vornehmen kann. Die Verwendung des Operator „is“ funktioniert leider nicht. Fehlermeldung:
Zitat:

Operator ist auf diesen Operantentyp nicht anwendbar.
Hat jemand eine Idee, wie man die Typabfrage noch gestalten könnte???

Delphi-Quellcode:
function TCorrelation.CheckObject(AObject: ICorrelation): Boolean;
begin
  if (AObject is TCorrelation) then Result := True
  else Result := False;
end;
Ich danke schon mal im Vorraus.

Grüße Scouty.

MrSpock 28. Nov 2003 13:37

Re: Typabfrage Interface
 
Hallo scouty,

zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum.

Nun zu deiner Frage: wenn du feststellen möchtest, ob ein Objekt ein bestimmtes Interface implementiert, musst du Funktion QueryInterface benutzen, die dir im Falle, dass das nachgefragte Interface existiert die ein Zugriff auf dieses Interface erlaubt.
Du kannst aber nicht ein Interface übergeben und prüfen zu welcher Klasse es gehört.


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