Ver Mensaje Individual
  #1  
Antiguo 22-10-2012
vani vani is offline
Miembro
 
Registrado: may 2004
Posts: 20
Reputación: 0
vani Va por buen camino
No se ejecuta un evento a tiempo

Hola a todos.
He diseñado una clase que define un objeto que a su vez tiene una propiedad que es otra clase. Es el caso de una factura de venta que a su vez tiene asociado un cliente. Como después quiero hacer estos objetos persistentes en una base de datos, cada clase tiene una propiedad que es su iD que lo identifica dentro de la base de datos, es decir la clase Tfactura tiene idFactura y la clase Tcliente tiene idCliente. Por supuesto la clase Tfactura tambien tiene una propiedad que es idCliente, que me permite identificar en la factura a que cliente pertenece. Pero como intento trabajar con objetos, la clase Tfactura tiene una propiedad que se llama cliente y es de tipo Tcliente. El hecho es que quiero que a un objeto factura pueda decirle que su objeto cliente es cierto cliente llamando a su propiedad cliente.loadByNombre(nombre) , tal que asi: factura.cliente.loadByNombre(nombre) , o bien asi factura.cliente = clienteyaLeido (clienteyaLeido es un objeto de tipo Tcliente), con lo cual no toco para nada la propiedad idCliente del objeto factura, o sea factura.idCliente, pero necesito que esta propiedad cambie automáticamente en cuanto pase lo anterior, es decir en cuanto cargue o modifique el objeto cliente de la factura. Para todo ello he creado el oportuno evento en la propia clase Tfactura que activo en cuanto el objeto cliente de la misma cambia, lo que ocurre es que ese evento se ejecuta unas veces si y otras no, y creo que no es que no se ejecute, sino que se ejecuta a posteriori de que haga a dicho objeto persistente en la base de datos. Esto lo he averiguado porque si el proceso lo sigo mediante el debug de delphi, cosa que permite dilatar el proceso final, este evento si se ejecuta y el idCliente de factura se registra bien. Sin embargo si el programa lo lanzo sin debug esta propiedad no queda reflejada correctamente.

Espero haber sido lo mas conciso y preciso en el problema y les agradecería que me ayudasen. Si alguien necesita de que sea mas concluyente escribiendo algo del código que me lo indique y así lo haré.

Un Saludo a todos y gracias por prestarme atención.
Responder Con Cita