如果我有这样的课程:
TServerSettings = class(TSettings) strict private FHTTPPort : Integer; published property HTTPPort : Integer read FHTTPPort write FHTTPPort default 80; end;@H_301_4@如何使用RTTI获取HTTPPort属性的默认属性?
解决方法
喜欢这个:
{$APPTYPE CONSOLE} uses System.TypInfo; type TMyClass = class strict private FMyValue: Integer; published property MyValue: Integer read FMyValue default 42; end; var obj: TMyClass; PropInfo: PPropInfo; begin obj := TMyClass.Create; PropInfo := GetPropInfo(obj,'MyValue'); Writeln(PropInfo.Default); end.@H_301_4@请注意,在您的问题中,类似于它的类已被打破.创建实例时,系统不会自动将属性初始化为其默认值.您需要在此类中添加构造函数才能执行此操作.