anchor.diff:      Self.Value:= aSourceField.AsFloat;
   end;
   
  +procedure TNullableDouble.Assign(const aValue: String; const aBlankStringMeansNull: boolean);
  +begin
  +  if aBlankStringMeansNull and (aValue = '') then
  +    Self.IsNull:= true
  +  else
  +    Self.Value:= StrToFloat(aValue);
  +end;
  +
   function TNullableDouble.AsVariant: Variant;
   begin
     if Self.FIsNull then
  
positive.code:     Self.Value:= aSourceField.AsInteger;
  end;
  
  function TNullableInteger.AsVariant: Variant;
  begin
    if Self.FIsNull then
  
negative.code:   public
      constructor Create(); virtual;
      function AsVariant: Variant; virtual; abstract;
      procedure Assign(aSourceField : TField); overload; virtual; abstract;
      procedure Assign (const aValue : String; const aBlankStringMeansNull : boolean); overload; virtual; abstract;
  
      property IsNull : Boolean read FIsNull write FIsNull;
      property NotNull : Boolean read GetNotNull;
  