Yo particularmente acostumbro usar el operador
is, pero eso no viene al tema.
He probado esto, y funciona sin problemas:
Código:
procedure TForm1.Button2Click(Sender: TObject);
var
Ol: TObjectList;
begin
Ol := TObjectList.Create;
Try
Ol.Add(Button1);
if Ol.Items[0].InheritsFrom(TControl) Then
ShowMessage('Ok!')
else
ShowMessage(Ol.Items[0].ClassName + ' no hereda de TControl');
finally
Ol.Free;
end;
end;
PD:
Me parece muy extraño que algo tan básico falle