Hello,
Already 2 simple ways (having said that, I thought that the proper of a control, was to be visual, but well... I don't see where the trap is). So, here is my dummy:
if (oMyComponent is TControl) then
...\...
else if (oMyComponent is TWinControl) then
...\...
or
if (oMyComponent.InheritsFrom(TControl)) then
...\...
else if (oMyComponent.InheritsFrom(TWinControl)) then
...\...