summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/tprop.pp
blob: ee17d82a2aa3bb7a91a3fa85bde25278635a68ec (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
{$ifdef fpc}
{$mode delphi}
{$endif}

uses
  variants;

type
  tdynarr = array of byte;

  tc = class
   private
    fda: tdynarr;
    fva: variant;
   public
    property da: tdynarr read fda write fda;
    property va: variant read fva write fva;
  end;

var
  c: tc;
  v: variant;
  d: tdynarr;
begin
  c:=tc.create;

  v:=5;
  c.va:=v;
  if (c.fva <> 5) then
    halt(1);
  v:='abc';
  v:=c.va;
  if (v <> 5) then
    halt(2);

  setlength(d,4);
  d[0]:=245;
  d[1]:=1;
  d[2]:=38;
  d[3]:=115;
  c.da:=d;
  if (length(c.fda)<>4) or
     (c.fda[0]<>245) or
     (c.fda[1]<>1) or
     (c.fda[2]<>38) or
     (c.fda[3]<>115) then
    halt(3);
  d:=nil;
  d:=c.da;
  c.da:=nil;
  if (length(d)<>4) or
     (d[0]<>245) or
     (d[1]<>1) or
     (d[2]<>38) or
     (d[3]<>115) then
    halt(4);
  
  c.free;
end.