blob: c41d0048d7fc7edb67b4c04eb1106f4ecfeca177 (
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
|
{ published properties/methods are available in the helper's RTTI }
program thlp37;
{$ifdef fpc}
{$mode delphi}
{$endif}
{$apptype console}
uses
typinfo;
type
TFoo = class
end;
{$M+}
TFooHelper = class helper for TFoo
private
function GetTest: Integer;
published
property Test: Integer read GetTest;
end;
{$M-}
function TFooHelper.GetTest: Integer;
begin
Result := 2;
end;
var
ti: PTypeInfo;
td: PTypeData;
begin
ti := TypeInfo(TFooHelper);
if ti = Nil then begin
Writeln('TypeInfo is Nil');
Halt(1);
end;
if ti^.Kind <> tkHelper then begin
Writeln('Type kind is not a helper');
Halt(2);
end;
td := GetTypeData(ti);
if td = Nil then begin
Writeln('TypeData is Nil');
Halt(3);
end;
Writeln('Property count: ', td^.PropCount);
if td^.PropCount <> 1 then
Halt(4);
Writeln('ok');
end.
|