TObject = class
public
....
class function ClassType : tclass;{$ifdef SYSTEMINLINE}inline;{$endif}
class function ClassInfo : pointer;
class function ClassName : shortstring;
class function ClassNameIs(const name : string) : boolean;
....
end;
this allows you to do stuff like this:
ImplClassName:= ListBox1.Items.Classname;
if ListBox1.Items.ClassType = TStringList then ...;
var TypeInfo: PTypeInfo; // incl. TypInfo in uses clause
TypeInfo:= ListBox1.Items.ClassInfo;
if TypeInfo^.Kind = tkClass then ...;