• 关于Delphi Rtti对应TDatetime的一些启示


    测试代码如下:

     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

    一见自明!

  • 相关阅读:
    js事件监听机制(事件捕获)
    js预解析
    前端工程师也要关注代码版本控制
    BOM跟DOM的区别和关联
    web开发,click,touch,tap事件浅析
    prototype
    CSS:haslayout
    canvas画图
    第一个json解析:ps:(内容待完善)
    json解析实例
  • 原文地址:https://www.cnblogs.com/rayz/p/2854855.html
Copyright © 2020-2023  润新知