blob: a1fdb8bbe335e9a3a7c185a8731a1eb966712908 (
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
|
program tclass13;
{$ifdef fpc}
{$mode delphi}{$H+}
{$endif}
{$apptype console}
uses
typinfo;
type
TRootClass = class
public
type
TNode = class
private
FTest: Integer;
type
TNode = class
FNode: TRootClass.TNode.TNode;
end;
en = (e1,e2);
TOtherNode = class
public
type
TNestedInOtherNode = class
ffield: longint;
end;
end;
TFinalNode = class
fx: TRootClass.TOtherNode.TNestedInOtherNode;
end;
published
property Test: Integer read FTest write FTest;
end;
class procedure DoTest;
end;
class procedure TRootClass.DoTest;
var
Test: TNode;
Test1: TNode.TNode;
begin
Test := TNode.Create;
Test.Test := 1;
if Test.ClassName <> 'TRootClass.TNode' then
halt(1);
Test.Free;
Test1 := TNode.TNode.Create;
if Test1.ClassName <> 'TRootClass.TNode.TNode' then
halt(2);
Test1.FNode:=Test1;
Test1.Free;
end;
begin
TRootClass.DoTest;
if GetEnumName(TypeInfo(TRootClass.TNode.en), ord(e1))<>'e1' then
halt(3);
end.
|