![]() |
Notificación a la clase padre..
Hola a todos,
necesito (y voy un poco perdido) una clase X que puede contener (ser padre) de ninguna, una o varias clases Y. Algo así como un LISTBOX que contiene (en su Tobject), varias otras clases (todas iguales). Donde reside el problema es en que necesito que un cambio en la clase Y, notifique a la clase X (padre) de este cambio, para aplicar un cambio a todas las clases Y hijas. No sé si me explico pero creo que no. :-( Creo que debo usar una Abstract Factory.... aunque no lo tengo claro. Bueno, si no se me entiende.... me extiendo más. Saludos. |
No se entiende :confused: Creo que tienes un poco enredado los conceptos de herencia y contención.
Intenta explicar un poco mas tu problema. |
Hola Crandel, pues si, tienes razón. Tengo un poco enredado todo eso.
Me explico. Quiero hacer lo siguiente: - Un componente X (ya lo tengo hecho) que es un reloj/cronometro. - Una clase que alberga 0,1 o varios ComponentesX (podría ser un Form si el componente fuese visual). Pero solo uno de los ComponentesX puede estar acumulando tiempo. Es decir, es una especie de reloj de ajedrez, donde un solo reloj funciona a la vez. Pero en lugar de haber 2 relojes siempre, el número es variable. La estructura sería así: TCronometro.... TConjuntodeCronometros: (0, 1 o varios TCronometro) El "evento" que debe "propagarse" al resto de ComponentesX activos, es que cuando se activa un TCronometro (componenteX) para que empiece/continue acumulando tiempo, el resto deben pararse. Realmente es un poco más complicado, pero creo que solucionando esto, puedo solucionar el resto. Creo que ahora me habré explicado un poco mejor. Eso espero. Saludos. |
Si, ahora se entiende mucho mejor ;)
En tu caso tendrías una clase TCronometro que es la que debe avisar cuando se ha iniciado. Por lo que debes implementar un evento utilizando la clase TNotifyEvent.
y lo implementas asi:
por otro lado tendrías tu clase contenedora
donde debes asignar a un método propio la llamada del evento, algo como:
Espero no haberte enredado mucho. Cualquier duda volve a preguntar |
Muchas gracias Crandel... Creo que ya tengo "tajo" para un par de días.
Es para un programa "free", así que cuando lo acabe os aviso para que lo podais ver. Aunque no sé si admitiré opiniones. Seguro que vuelvo con mas cuestiones. Es todo un alivio saber que estais por aquí. :-) Saludos. |
| La franja horaria es GMT +2. Ahora son las 18:35:31. |
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