Ver Mensaje Individual
  #5  
Antiguo 19-12-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A reserva de lo que diga Juan Antonio, te doy mi opinión.

Usar TLabel(Sender) es una apuesta a la consistencia de tu código. Estás confiando ciegamente en que Sender es de tipo TLabel y lo será no importa cuántos cambios hagas en lo futuro a tu código.

Es más confiable protegerse uno mismo y verificar que el tipo de datos es realmente el esperado:

Código Delphi [-]
if Sender is TLabel then
  TLabel(Sender).Blablabla;

La forma que usa Juan Antonio, usando el operador as, también te protege ya que implícitamente, as comprueba el tipo de datos y si no coincide lanza una excepción.

¿Por qué protegerse? Bueno, razones puede haber muchas, pero yo lo veo similar a hacer:

Código:
puntero^.campo := valor
así sin más. La lógica de tu codigo te puede decir que siempre que llegues a esa asignación, puntero será distinto de nil así que no hay que comprobarlo previamente, pero, ¿dormirás tranquilo?

// Saludos
Responder Con Cita