Wenn du direkt auf einen Typ prüfen willst, dann mußt du den Typ auch direkt "vergleichen".
z.B.:
Delphi-Quellcode:
if obj.ClassType = TIrgendwas then
if obj.ClassName = 'TIrgendwas' then
if obj.ClassNameIs('TIrgendwas') then
Das Funktioniert aber nur bei einer flachen Vererbungshierarchie:
Beispiel: TObject -> TMyObject -> TMySubObject
Code:
var
obj1 : TMyObject;
obj2 : TMySubObject;
begin
obj1 := (TMyObject.Create);
obj2 := (TMySubObject.Create);
if (obj2.ClassName = 'TMyObject') then; // ist immer False
end;
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.