Delphi Rtti対応TDatetimeに関するいくつかのヒント
4879 ワード
テストコードは次のとおりです.
実行結果:
TDatetime
TDatetime
TDatetime
Extended
一目でわかる!
1 program Project1;
2
3 {$APPTYPE CONSOLE}
4
5 {$R *.res}
6
7 uses
8 System.SysUtils,
9 rtti;
10
11 type
12 TTest = class
13 private
14 FDateTime: TDateTime;
15 published
16 property D: TDateTime read FDateTime write FDateTime;
17 end;
18
19 var
20 T: TTest;
21 AValue, rValue: TValue;
22 Context: TRttiContext;
23 rType: TRttiType;
24 rProp: TRttiProperty;
25 begin
26 try
27 T := TTest.Create;
28 T.D := Now;
29 rType := Context.GetType(TTest);
30 rProp := rType.GetProperty('D');
31 Writeln(rProp.PropertyType.Handle.Name);
32 rValue := rProp.GetValue(T);
33 Writeln(rValue.TypeInfo.Name);
34 AValue := TValue.From<TDateTime>(Now);
35 Writeln(AValue.TypeInfo.Name);
36 AValue := Now;
37 Writeln(AValue.TypeInfo.Name);
38 Readln;
39 except
40 on E: Exception do
41 Writeln(E.ClassName, ': ', E.Message);
42 end;
43 end.
実行結果:
TDatetime
TDatetime
TDatetime
Extended
一目でわかる!