fpc/tests/webtbs/tw10791.pp

55 lines
1.4 KiB
ObjectPascal

{$ifdef FPC}{$mode objfpc}{$h+}{$endif}
{$ifdef mswindows}{$apptype console}{$endif}
uses
sysutils,classes;
type
ttestclass = class(tcomponent)
private
frealprop: real;
published
property realprop: real read frealprop write frealprop;
end;
var
instance1,instance2: ttestclass;
stream1,stream2: tmemorystream;
begin
instance1:= ttestclass.create(nil);
instance2:= ttestclass.create(nil);
stream1:= tmemorystream.create;
stream2:= tmemorystream.create;
try
instance1.realprop:= 1e10;
stream1.writecomponent(instance1);
stream1.position:= 0;
objectbinarytotext(stream1,stream2);
stream2.position:= 0;
stream1.clear;
objecttexttobinary(stream2,stream1);
stream1.position:= 0;
stream1.readcomponent(instance2);
writeln('instance1: ',instance1.realprop,' instance2: ',instance2.realprop);
if instance1.realprop<>instance2.realprop then
halt(1);
stream1.clear;
stream2.clear;
instance1.realprop:= 1;
stream1.writecomponent(instance1);
stream1.position:= 0;
objectbinarytotext(stream1,stream2);
stream2.position:= 0;
stream1.clear;
objecttexttobinary(stream2,stream1);
stream1.position:= 0;
stream1.readcomponent(instance2);
writeln('instance1: ',instance1.realprop,' instance2: ',instance2.realprop);
if instance1.realprop<>instance2.realprop then
halt(1);
finally
instance1.free;
instance2.free;
stream1.free;
stream2.free;
end;
end.