summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw4519.pp
blob: 87ebe8bb682c247f602775938fb3c27ff788bddf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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.