Ver Mensaje Individual
  #8  
Antiguo 19-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Reputación: 29
delphi.com.ar Va camino a la fama
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);  //comportamiento aleatorio, pero seguramente erroneo
  Label1Click(nil); //EAccessViolation!
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita