|
@@ -0,0 +1,49 @@
|
|
|
+{ Source provided for Free Pascal Bug Report 4519 }
|
|
|
+{ Submitted by "Martin Schreiber" on 2005-11-17 }
|
|
|
+{ e-mail: }
|
|
|
+program project1;
|
|
|
+{$mode objfpc}{$h+}
|
|
|
+uses
|
|
|
+ classes;
|
|
|
+
|
|
|
+type
|
|
|
+ ttestcomp = class(tcomponent)
|
|
|
+ private
|
|
|
+ fstringvar: string;
|
|
|
+ procedure readstringvar(reader: treader);
|
|
|
+ procedure writestringvar(writer: twriter);
|
|
|
+ protected
|
|
|
+ procedure defineproperties(filer: tfiler); override;
|
|
|
+ end;
|
|
|
+
|
|
|
+{ ttestcomp }
|
|
|
+
|
|
|
+procedure ttestcomp.readstringvar(reader: treader);
|
|
|
+begin
|
|
|
+ fstringvar:= reader.readstring;
|
|
|
+end;
|
|
|
+
|
|
|
+procedure ttestcomp.writestringvar(writer: twriter);
|
|
|
+begin
|
|
|
+ writer.writestring(fstringvar);
|
|
|
+end;
|
|
|
+
|
|
|
+procedure ttestcomp.defineproperties(filer: tfiler);
|
|
|
+begin
|
|
|
+ filer.defineproperty('stringvar',@readstringvar,@writestringvar,true);
|
|
|
+end;
|
|
|
+
|
|
|
+var
|
|
|
+ testcomp: ttestcomp;
|
|
|
+ stream1,stream2: tmemorystream;
|
|
|
+
|
|
|
+begin
|
|
|
+ testcomp:= ttestcomp.create(nil);
|
|
|
+ stream1:= tmemorystream.create;
|
|
|
+ stream1.writecomponent(testcomp);
|
|
|
+ stream1.position:= 0;
|
|
|
+ stream2:= tmemorystream.create;
|
|
|
+ objectbinarytotext(stream1,stream2); //<- AV
|
|
|
+ stream1.free;
|
|
|
+ stream2.free;
|
|
|
+end.
|