![]() |
Sobrescribir un evento y ejecutar también el que estaba previamente
Hola
En un TFrame estoy creando una especie de navegador (TNavegator) de tablas que funcione con campos TEdit (en vez de TDBEdit). Una de las propiedades es DataSource (que guardo en FDataSource). Esta propiedad se asigna a mano antes de utilizar el navegador, de manera que apunte a un TDataSource ya existente (bien en un TDataModule o bien en la misma ficha donde esté el TFrame). Mi problema viene con el evento OnStateChange. En mi clase navegador sobrescrivo este envento con uno propio mío, ya que me interesa que cada vez que haya un cambio en State se ejecute un determinado código, pero: si (en el TDataSource original) había otro OnStateChange asignado previamente, ¿cómo hago para ejecutar el que ya estaba antes y después el mío? Saludos Paco Ruiz |
Espero que sea esto lo que necesites...
Espero me haya hecho entender y que además de que sea lo que necesites, te sirva ;). |
Cita:
Luego cuando ejecutes el tuyo deberás hacer:
|
Cita:
El único detalle que me queda es cómo declaro la variable que tú llamas OldActiveDataSet. La otra (_OnActiveDataSet) es el nombre del procedimiento que tengo. |
Gracias por tu respuesta jhonny, pero te limitas a hacer lo mismo que yo, sobrescribes el evento y "pasas" del que pudiera estar asignado antes.
Es más, si originariamente no hubiera ninguno asignado, tú tampoco le asignas ahora otro nuevo (peor aún que lo que yo hacía). |
Cita:
|
Cita:
Para la declaración puedes coger de muestra la cabecera del evento que estás redeclarando; El procedimiento debe tener los mismos parámetros para que puedes asignarlo. Por ejemplo si estás "sobreescribiendo" el evento OnDataChange (por decir uno) que está definido así:
Pues la definición de tu procedimiento _MyOnDataChange/OldDataChange será:
|
| La franja horaria es GMT +2. Ahora son las 12:34:24. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi