Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-11-2009
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Poder: 20
yapt Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 19-11-2009
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
No se entiende Creo que tienes un poco enredado los conceptos de herencia y contención.

Intenta explicar un poco mas tu problema.
__________________
[Crandel]
Responder Con Cita
  #3  
Antiguo 19-11-2009
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Poder: 20
yapt Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 19-11-2009
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
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.

Código Delphi [-]
TCronometro = class
private
  FStartEvent: TNotifyEvent;
  ...
public
  procedure Start;
  procedure Stop;
  ... 
  property OnStart: TNotifyEvent read FStartEvent write FStartEvent;
end;

y lo implementas asi:

Código Delphi [-]

procedure TCronometro.Start;
begin
...
if Assigned(FStartEvent) then FStartEvent(self);
end;


por otro lado tendrías tu clase contenedora

Código Delphi [-]
TManjejadorHorarios = class
private
  ...
public
  Cronometros: Array of TCronometro;
  procedure InicioCronometro(Sender: TObject);
end;

donde debes asignar a un método propio la llamada del evento, algo como:
Código Delphi [-]
Cronometros[0].OnStart := InicioCronometro;

Espero no haberte enredado mucho. Cualquier duda volve a preguntar
__________________
[Crandel]
Responder Con Cita
  #5  
Antiguo 19-11-2009
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Poder: 20
yapt Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
clase que contiene otra clase definida de forma posterior astwin OOP 5 20-02-2009 11:26:55
Notificación de Cambios marcial Firebird e Interbase 8 18-11-2008 20:58:02
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
notificacion por E-mail pharaonhx Internet 6 20-12-2004 22:57:13
Notificacion del debugger isc_hilda Varios 0 13-05-2004 21:28:35


La franja horaria es GMT +2. Ahora son las 21:22:07.


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
Copyright 1996-2007 Club Delphi