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:
Gruß,
Sven