Ver Mensaje Individual
  #8  
Antiguo 30-04-2019
XusF XusF is offline
Registrado
 
Registrado: abr 2019
Posts: 2
Reputación: 0
XusF Va por buen camino
Solución propuesta

Siguiendo la solución de manelb, he implementado esta versión un poco más simple. En lugar de diferenciar si el campo es TIntegerField o no, podemos hacerlo de la siguiente forma:

Código Delphi [-]
procedure TFIBCustomDataSet.DoFieldValidate(Field:TField;Buffer:Pointer);
begin
  if Assigned(Field.OnValidate) then
  begin
   Include(FRunState,drsInFieldValidate);
   try
      FValidatingFieldBuffer:=Buffer;

      FValidatedField:=Field;
      FValidatedRec:= ActiveRecord;
      Field.Validate(Buffer);

   finally
     Exclude(FRunState,drsInFieldValidate);
     FValidatingFieldBuffer:=nil;
   end;
  end;
end;

Llamamos al método Field.Validate para actualizar el estado de la variable FValidating siempre (sea o no un IntegerField) y de paso conservamos las asignaciones que hace el TFIBCustomDataSet.DoFieldValidate.
Responder Con Cita