Thema: Delphi Frage zum "is"-Operator

Einzelnen Beitrag anzeigen

QStorm

Registriert seit: 28. Jun 2008
46 Beiträge
 
#12

AW: Frage zum "is"-Operator

  Alt 23. Jan 2014, 18:01
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 = 'TIrgendwasthen

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.
  Mit Zitat antworten Zitat