Hola.
Tal como dice maeyanes el operador
is te permite averiguar que tipo de objeto es el actual,
pero tiene un inconveniente: aceptaría como
TButton a un descendiente de él. (Como bién lo
aclara maeyanes en la línea de comentario).
Para saber exactamente cuál es el tipo del componente tendrías que usar
ClassType para averiguarlo.
Un ejemplo:
Código:
procedure TForm1.ShowTipoCtrl;
var
i: Integer;
TC: TClass;
begin
for i:= ControlCount -1 downto 0 do
begin
TC:= Controls[i].ClassType;
if TC = TButton then ShowMessage('TButton');
if TC = TLabel then ShowMessage('TLabel');
if TC = TButtonExt then ShowMessage('TButtonExt')
end
end;
Saludos.