Ver Mensaje Individual
  #5  
Antiguo 16-10-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por José Luis Garcí Ver Mensaje
Bueno es que me corrigas Neftali, gracias a ello procurare no cometer ese error.
Bueno, he de decir que mi afirmación no fue exacta 100%.
He leído mimensaje y creo que ha quedado un poco en el aire, así que intentaré explicarlo mejor.

(1º) Derivar un componente y utilizar (sobreescribir) eventos.
En el mensaje anterior dije que esto nunca se debía hacer; Tal vez debería haber dicho que no se debe hacer a no ser que no exista otra opción (NOTA1).
En problema de utilizar ventos, es que si lo hacemos tal cual y el programador final utiliza ese evento, se perderá la programación qu nosotros hemos hecho en el. Un evento no es más que un puntero a una función. Si utilizamos ese puntero corremos el riesgo de que el programador final lo vuelva a utilizar y ese único puntero llevará a su función en lugar de a la nuestra.
SOLUCIÓN: Si no hay otro remedio, lo que hay que hacer es crear un puntero auxiliar que apunte a la original y luego programar la nuestra; Y desde la nuestra llamar a la original.
En este hilo hay un par de ejemplos de cómo hacerlo explicados.

(2º) Qué utilizar en lugar de los eventos.
Lo normal es utilizar los métodos definidos como virtuales/abstract en las clases base (que son para eso) o capturar los mensajes de windows.
Si no hubiera métodos virtuales para sobreescribir, ni mensajes para capturar es el único caso en que se puede utilizar el método 1.

NOTA1: De todas formas comentar (es una opinión personal) que si llegamos al punto de necesitar usar el punto (1º), deberíamos plantearnos si el diseño del componente que estamos haciendo es el correcto.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita