hi,
i am after some help with turning the below bit of hacked code into something civilized:
try
writeln(Label1.ClassParent.ClassName);
writeln(Label1.ClassParent.ClassParent.ClassName);
writeln(Label1.ClassParent.ClassParent.ClassParent.ClassName);
writeln(Label1.ClassParent.ClassParent.ClassParent.ClassParent.ClassName);
writeln(Label1.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassName);
writeln(Label1.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassName);
writeln(Label1.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassName);
writeln(Label1.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassName);
writeln(Label1.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassName);
writeln(Label1.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassParent.ClassName);
except
end;
it produces the following output:
TCustomLabel
TGraphicControl
TControl
TLCLComponent
TComponent
TPersistent
TObject
i'm after figuring out how to make this into a walk along the chain until i see "TObject", but haven't had much success doing so:
procedure walk;
var O:TObject;
begin
O:=Label1;
repeat
writeln(O.ClassName);
O:=O.TObject(ClassParent);
until O.ClassNameIs('TObject')
end;
line 7 doesn't compile

any suggestions?
cheers,
rob :-)