![]() |
![]() |
| 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
|
||||
|
||||
|
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. |
|
#2
|
||||
|
||||
Otro nivel con ustudes... cada día se aprende más. Gracias.
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás... análisis de información análisis y diseño de sistemas Paoti Rios Reséndiz |
|
#3
|
||||
|
||||
|
Como es algo que pueda interesar (al menos para echar un vistazo), aquí os lo dejo. Tiene una mala práctica de programación, el que avisa no es traidor.
Como ya dije hay dos clases una es TEventAlerter (a partir de ahora EA) y otra TEAItem, la relación entre ambas es la misma de un TreeView (TTreeNodesss) y un TTreeNode, pero he desechado hacerlo como hace la VCL. La razón (que no es de peso) es que me gusta usar una sola línea de código para añadir la alerta, en lugar de teclear 4 o 5 líneas. A quien le guste que lo use, y al que no... ¡¡ que lo modifique !! ![]() Otros Comentarios: - No se instala nada en la paleta de delphi, sólo son 2 unidades independientes. - Para usarlo, se da un ejemplo, básicamente es asignar un evento Onclick de por código delphi (sin usar el Inspector de objetos). - Implementado en BDS2006, pero se podrá ejecutar desde un Delphi 6 sin problemas. (En la cabecera del archivo EventAlerter.pas están las directivas del compilador, borrarlas si os da problemas) Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 10-10-2007 a las 20:58:14. |
![]() |
| 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 |
|