delphi – 使用RTTI获取单元中定义的类和对象的完整列表
发布时间:2020-12-15 09:19:56 所属栏目:大数据 来源:网络整理
导读:我想获得在特定单元中定义的完整类列表 如何获取这些类的所有实例的列表,无论它们在何处创建? 解决方法 在回答您的问题之前,请记住在与Rtti相关的问题中始终包含您的delphi版本. 1)您正在使用新版本的delphi( = 2010)的Asumming,您可以使用 QualifiedName
>我想获得在特定单元中定义的完整类列表
>如何获取这些类的所有实例的列表,无论它们在何处创建? 解决方法
在回答您的问题之前,请记住在与Rtti相关的问题中始终包含您的delphi版本.
1)您正在使用新版本的delphi(> = 2010)的Asumming,您可以使用 检查下一个样本. {$APPTYPE CONSOLE} {$R *.res} uses Rtti,System.SysUtils; procedure Test; Var t : TRttiType; //extract the unit name from the QualifiedName property function GetUnitName(lType: TRttiType): string; begin Result := StringReplace(lType.QualifiedName,'.' + lType.Name,'',[rfReplaceAll]) end; begin //list all the types of the System.SysUtils unit for t in TRttiContext.Create.GetTypes do if SameText('System.SysUtils',GetUnitName(t)) and (t.IsInstance) then Writeln(t.Name); end; begin try Test; except on E: Exception do Writeln(E.ClassName,': ',E.Message); end; Readln; end. 2)Rtti无法列出类的实例.因为Rtti是关于类型信息而不是实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |