Ver Mensaje Individual
  #10  
Antiguo 13-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Yo he usado una variable en mi código que se llama FContable, y da la casualidad que tú tienes una ventana que se llama FContable, y claro, así es imposible aclararnos ambos.

Solución: Voy a editar mi mensaje y cambiar el nombre de esa variable para que no haya confusión.


La filosofía es:
- Si la ventana FormContabilidad no está abierta, y se cambia un dato en dsContable (el que está en el Datamodule), se irá al evento Datamodule.dsContableDataChange, la condición:
Código Delphi [-]
 if Assigned(FNotifyToTFormContabilidad) then
no se cumplirá, ya que delphi al crear el Datamodule le asigna nil a FNotifyToFormContabilidad.

- Si se crea la ventana FormContabilidad, en su FormCreate se le da un valor a NotifyToFormContabilidad, y por tanto, mientras esté abierta esta ventana, ocurrirá lo siguiente al cambiarse un dato en Datamodule.dsContable:
  • Se produce el evento Datamodule.dsContableDataChange
  • Se comprueba que FNotiFyToFormContabilidad tiene un valor, ahora si entrará en la condición, porque al crear FormContabilidad se ha asignado un valor.
  • Se ejecuta la linea "FNotifyToTFormContabilidad(Sender, Fied); " que en realidad, lo que hace es ejecutar el procedimiento FormContabilidad.dsContableDatachange
  • Cuando termine el procedimiento anterior, vuelve a Datamodule.dsContableDataChange y sigue ejecutando ese procedimiento.

Si te fijas bien, lo único que estoy haciendo es asignar valores a propiedades, igual que con un "Edit1.Text := 'pepe', pero claro, son eventos, y estamos acostumbrados a asignarlos con el Inspector de Objetos, casi nunca por código, ahí está la dificultad.

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: 13-10-2006 a las 17:53:32.
Responder Con Cita