Cita:
|
Empezado por jachguate
Ya Roman ha explicado muy bien el porque usar el operador as/is en estos casos (recordá que el método Label1Click podrías asignarlo a componentes de diferentes clases en tiempo de ejecución, e incluso invocarlo desde código. Que pasa si a un futuro programador que está dando mantenimiento a tu código se le ocurre hacer esto:
Código Delphi [-]
Label1Click(Button1); Label1Click(nil);
|
El comparador
is retornará False si el objeto es nil

... No se producirá un Access Violation!
Cita:
|
Empezado por jachguate
Solo para terminar de molestar un poco... he podido comprobar que el método CanFocus puede decirnos true, y de todas formas ocurrir un error al intentar establecer el foco, así que para terminar de "molestar" en terminos de Fede:
|
¿Y porque ocultar el error si tenemos un problema?

Lo he visto en mas de una ocasión, nunca me lo puse a investigar, pero la solución del momento no distó en nada de la tuya
Cita:
|
Empezado por maeyanes
Ya que al hacer una comprobación previa con el operador is, al usar as se estaría haciendo de nuevo una comprobación is...
|
No te entiendo, de todos modos tienes que hacer el cast
Saludos!