Andreas Frieß wrote:

> when i compile in Lazarus the Reportdesigner with activated
> RangeCheck it gives a lot of runtimeerror with rangeerrors.
>


For explanation what i mean in my previous post, UInt32 is not an
integer or JSON compatible size (and actual rangecheck unsafe).

ANdreas

----------------------


in systemh.inc

  maxLongint  = $7fffffff;

in objectpas.pp
    const
       MaxInt  = MaxLongint;
    type
       Integer  = longint;

in fpreport.pp

  TFPReportColor  = type UInt32;

in systemh.inc

  Cardinal = LongWord;
...
  UInt32  = Cardinal;

in fpreport.pp

const
  { The format is always RRGGBB (Red, Green, Blue) - no alpha channel }
  clNone          = TFPReportColor($80000000);  // a special condition:
$80 00 00 00

......
    AWriter.WriteInteger('FontColor', Font.Color);
.....
    Font.Color := AReader.ReadInteger('FontColor', Font.Color);
......

in fpReportStreamer.pp

function TFPReportJSONStreamer.ReadInteger(AName: String; ADefault:
Integer): Integer;
var
  d: TJSONData;
begin
  d := FindChild(AName) as TJSONData;
  if d = nil then
    Result := ADefault
  else
  begin
    if d.JSONType = jtNumber then
      Result := d.AsInt64
    else
      Result := ADefault;
  end;
end;



_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to