![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
)En este caso concreto no parece un problema enmascarar una propiedad (el método OnBeforeActivate) puesto que es para ampliar su comportamiento, se ofrece al usuario del componente la misma funcionalidad que tenía en el ancestro, incluso con el mismo nombre para el evento (según el código que ha puesto Crandel). Lo que no tengo muy claro (no lo he probado pero supongo que fallará), es qué pasaría si accediéramos polimórficamente a varios objetos TWebBrowser, entre ellos un TDecWebBrowser, para asignar su evento OnBeforeActivate, algo así:
Al llegar al componente de tipo TDecWebBrowser, ¿se modificaría el evento redefinido o el correspondiente al ancestro? Me inclino por esto segundo, no sé si alguien ha hecho sus pruebas al respecto. Quizás esa sea una de las pegas de enmascarar una propiedad / método, que se está induciendo a un posible error. Saludos
__________________
Guía de Estilo |
|
#2
|
||||
|
||||
|
Cita:
Cuidado DEC !!! Punto a favor de hacerlo con la sugerencia de Roman.
__________________
[Crandel] |
|
#3
|
||||
|
||||
|
Cita:
// Saludos |
|
#4
|
|||
|
|||
|
Cita:
Saludos... |
|
#5
|
||||
|
||||
|
Hola,
Yo quisiera verlos en mi caso. He probado lo que me decís en vuestros últimos mensajes. He probado de varias formas. Comprendo que la solución que he logrado no parece la más efectiva o elegante, pero, hasta el momento es la única que funciona. Con todolo demás que he probado, y, repito, he probado, estoy probando y probaré, lo único que obtengo son errores de este jaez: Cita:
roman, confirmo que estaba demás la instrucción: Quisiera decir que esta frase no me ha caído muy bien: Cita:
Cita:
Cita:
|
|
#6
|
||||
|
||||
|
Cita:
Cita:
// Saludos |
|
#7
|
||||
|
||||
|
Hola,
Cita:
![]() Cita:
Por otro lado me estoy pegando con el método "InvokeEvent". Me gustaría utilizarlo, un poco irracionalmente, puesto que el componente, lo diré una vez más, funciona aparentemente bien. Encuentro este problema: Ahora mismo estoy actuando así en el evento que me interesa y es necesario:
Última edición por dec fecha: 03-11-2005 a las 21:50:17. Razón: Corrección del texto. |
|
#8
|
|||
|
|||
|
¿Cuál es la última versión de tu componente?, para que le eche un vistazo...
![]() |
|
#9
|
||||
|
||||
|
Cita:
// Saludos |
|
#10
|
||||
|
||||
|
Hola,
Cita:
Cita:
![]() |
|
#11
|
||||
|
||||
|
¡Hola a todos!
Vaya hilo. Se mezcló lo del TActionList con lo de agregar comportamiento relacionado con un evento a una clase descendiente. Me resultó un poco difícil leerlo, porque las muestras de código tienen líneas demasiado largas para una resolución de 800X600. Dec: Te aconsejo que optes por la recomendación de Román respecto al método virtual InvokeEvent. Verás, la óptica es esta: Si existe un método virtual que llama directa o indirectamente a un manejador de evento, lo mejor es tratar de redefinir ese método y agregar ahí la nueva funcionalidad relacionada con el evento. Si por alguna razón (técnica o lógica) prefieres redefinir la propiedad evento, ten en cuenta lo siguiente: 1. No necesitas usar Load. 2. Puedes redeclarar la propiedad evento en la nueva clase y con el mismo nombre para ocultar la propiedad padre ante el inspector de objetos, guardando la nueva propiedad en un nuevo campo. 3. Desde el método que asignes internamente a la propiedad oculta puedes llamar al nuevo evento. 4. Si la propiedad original no está definida con métodos de acceso virtuales, tu componente tendrá el riesgo que señala Andrés, al hacer referencias polimórficas (se operará sobre la propiedad padre, no la nueva). Espero esto sea de utilidad. Un abrazo orientado a objetos. Al González. ![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. Última edición por Al González fecha: 31-01-2010 a las 05:23:23. Razón: Era InvokeEvent, no Invoke. :) |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|