Thema: Delphi Frage zum "is"-Operator

Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#20

AW: Frage zum "is"-Operator

  Alt 24. Jan 2014, 06:33
Vielleicht habe ich mich unglücklich ausgedrückt. Ich möchte wissen ob das Objekt, auf das ein Pointer zeigt, von einem Typ ist oder von diesen erbt. In zum Beispiel Java gibt es instanceof. Das Gegenstück dazu brauche ich in Delphi.
Das Gegenstück zu instanceof ist nun mal is und macht genau das was du beschreibst. Vielleicht hast du ganz falsche Erwartungen davon, was da passiert?

Ich hab mal dein Beispiel von Anfang (ein bisschen abgeändert) getestet:

Delphi-Quellcode:
program tistest;

{$mode objfpc}

uses
  Classes;

var
  stringList : TStringList;
  obj : TObject;
  control : TInterfacedObject;
begin
  stringList := (TStringList.Create);
  obj := TObject(stringList);
  control := TInterfacedObject(obj); // ich hatte keine Lust Controls einzubinden...
  Writeln(control.ClassType.ClassName);

  Writeln(control is TInterfacedObject); // dürfte unter Delphi glaub ich nicht funktionieren, da das kein Writeln(Boolean) kennt :P
end.
Ausgabe:

Code:
TStringList
FALSE
Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat