Ver Mensaje Individual
  #1  
Antiguo 09-12-2003
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Reputación: 0
tango01 Va por buen camino
TDataSetNotifyEvent

hola gente, necesito deshabilitar el evento onCalcFields de un dataset momentaneamente.

para lo cual hice lo siguiente:

Código:
...
var
  p : TDataSetNotifyEvent;
begin
...
p:= dataset.OnCalcFields;
dataset.OnCalcFields := nil;
... 
// calculos con los campos
...
dataset.OnCalcFields := p;
dataset.OnCalcFields(dataset);
dataset.Post;
...
esto funciona bien, siempre y cuando el evento onCalcfields del dataset este definido, sino da un error de access violation.

para lo cual le encontre una solucion un poco sucia:

Código:
...
var
  p : TDataSetNotifyEvent;
begin
...
p:= dataset.OnCalcFields;
dataset.OnCalcFields := nil;
... 
// calculos con los campos
...
dataset.OnCalcFields := p;
dataset.Post;
dataset.Edit; // con el edit y el post se ejecuta el evento
dataset.Post; //  onCaclfield sin errores aunque no este definido
...
Mi pregunta es, hay alguna forma más ortodoxa de hacer esto, es decir, como puedo saber de antemano si el evento onCalcFields esta definido en el objeto.

gracias por su ayuda

fede.-

Argentina.-
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita