Hallo zusammen
Ich habe eine Klassendefinition mit :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| Type TBaseClass = class Constructor Create(); End;
TTestClassA(TBaseClass) Constructor Create(); End;
TTestClassB(TTestClassA) Constructor Create(); End;
Procedure TestClass(L:TList); var El:TBaseClass; TC:TTestClass; Begin El:=L[0]; if (El is TTestClassA) then Begin .. End else if (El is TTestClassB) then Begin ... End
End; |
Gerne möchte ich in der Prozedur TestClass mit Hilfe des is-Operators herausfinden um welche Klasse es sich handelt. Bei einm anderen Programm (auf einem anderen PC) ist mir das gelungen.
Wenn ich das Programm im Debugger durchsteppe und an der Stelle
if (El ist TTestClassA) mir im Debugger den Klassennamen anschauen will, dann steht für den Watch-Ausdruck
El.Classnae : Nicht verfügbarer Wert und die Klasse TTestClassB wird nie erkannt.
Wenn ich den Klassenanme zuerst als String auslese und dann Prüfe, dann funktioniert es:
s:String;
s:=El.Classname;
if s = 'TTestClassB' then
Begin
...
end;
Erkennt ihr vielleicht das Problem hier? Liegt es etwa an betimmten IDE-Einstellungen?
Vielen Dank für Eure Hilfe
Geri
PS: Ich verwende Delphi 2005, personal