TWriter doesn't stream stored 0 Int64 values
Original Reporter info from Mantis: kluug.net @onpok
-
Reporter name: Ondrej Pokorny
Original Reporter info from Mantis: kluug.net @onpok
- Reporter name: Ondrej Pokorny
Description:
The "nodefault" modifier doesn't work for Int64 values.
Steps to reproduce:
program NoDefault;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
Classes
{ you can add units after this };
type
TTest = class(TComponent)
private
fTest: Int64;
function TestStored: Boolean;
published
property Test: Int64 read fTest write fTest stored TestStored nodefault;
end;
{ TTest }
function TTest.TestStored: Boolean;
begin
Result := fTest<>100;
end;
var
xStream: TStringStream;
xWriter: TWriter;
C: TTest;
begin
xStream := TStringStream.Create('');
C := TTest.Create(nil);
C.Test := 0;
xWriter := TWriter.Create(xStream, 1024);
xWriter.WriteDescendent(C, nil);
C.Free;
xWriter.Free;
Writeln(xStream.DataString);
xStream.Free;
ReadLn;
end.