![]() |
![]() |
| 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 |
|
#7
|
||||
|
||||
|
Pues al final me he decidido por el patrón del observador, pero nada complejo:
Un TStringlist almacena el nombre de cada "alerta", cada alerta lleva asociado un TObjectList. Cada elemento del TObjectList es un objeto en el que se puede almacenar: - Puntero hacia un procedure of object - Puntero hacia un procedure. - Tipo de Puntero (define cual de los dos anteriores se ha usado). - Nombre del observador (para depurar). Todo queda encapsulado en un TObject con los métodos: - AddAlert - > se registra un observador - DeleteAlert-> se elimina un observador - ExecuteAlert-> se lanza la notificación de una alerta determinada a todos sus observadores - AlertsNamesAndObservers -> Depuración: muestra todos los nombres de las alertas, el total de observadores y el nombre de cada uno. Los 3 métodos iniciales están sobrecargados para llamarlos con un "procedure of object" o con un simple "procedure" Le veo una pequeña lista de futuros cambios (de momento se queda como está ):TO DO: - ¿Derivar de TComponent y añadir el FreeNotification? Razon: Si el usuario del módulo no Elimina la alerta al hacer un .Free de la ventana donde se encuentra el Callback, al llamar a Execute se producirá un access violation. - Añadir CriticalSection ¿? Saludos y muchas gracias.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Minimizar todas las ventanas | santiago14 | Varios | 2 | 17-09-2004 03:34:01 |
| Preferencias de la mujer según su edad | santana | Humor | 81 | 27-06-2004 23:25:28 |
| Modificar Preferencias de Impresion | caio | API de Windows | 2 | 13-03-2004 13:20:46 |
| minimizar todas las ventanas. | soyhugo | Varios | 2 | 18-02-2004 13:11:26 |
|