Algo así compilaría... la ventaja es que estas seguro de obtener una excepción en caso de no corresponder la clase.
Por ejemplo:
Código Delphi
[-]
begin
try
(Sender as TButton).Caption := 'Pulsado';
except
on EInvalidTypecast
Label1.Caption := 'Lo siento, en este momento solo puede pulsar botones';
end;
Hasta luego.