mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 04:28:00 +02:00
55 lines
1.4 KiB
ObjectPascal
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.
|