summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw3758.pp
blob: ba700ebf1cf0abba660467f85aadb784e7e2d3e8 (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
50
51
52
53
54
55
56
57
58
59
60
61
{ Source provided for Free Pascal Bug Report 3758 }
{ Submitted by "Martin Schreiber" on  2005-03-07 }
{ e-mail:  }
program project1;

{$mode objfpc}{$H+}

uses
  Classes, SysUtils;

type

 ttestcomp = class(tcomponent)
  private
   fwstr: widestring;
  published
   property wstr: widestring read fwstr write fwstr;
  end;

var
 stream1,stream2: tmemorystream;
 f: tfilestream;
 testcomp1,testcomp2: ttestcomp;
 str1: widestring;

begin
 setlength(str1,2);
 str1[1]:= widechar($1f00);
 str1[2]:= widechar($203);
 stream1:= tmemorystream.create;
 stream2:= tmemorystream.create;
 testcomp1:= ttestcomp.create(nil);
 testcomp2:= ttestcomp.create(nil);
 try
  testcomp1.wstr:= str1;
  stream1.writecomponent(testcomp1);
  stream1.position:= 0;
  objectbinarytotext(stream1,stream2);
  stream1.clear;
  stream2.position:= 0;
  f:= tfilestream.create('test.txt',fmcreate);
  f.copyfrom(stream2,0);
  f.free;
  stream2.position:= 0;
  objecttexttobinary(stream2,stream1);
  stream1.position:= 0;
  stream1.readcomponent(testcomp2);
  if testcomp2.wstr = str1 then begin
   writeln('OK');
  end
  else begin
   writeln('Error');
  end;
 finally
  stream1.free;
  stream2.free;
  testcomp1.free;
  testcomp2.free;
  deletefile('test.txt');
 end;
end.