System.Rtti.TRttiObject.GetAttributes 简例
MAttribute = class(TCustomAttribute)
private
FName: string;
public
constructor Create(AName: string);
end;
TMyClass = class
private
FProp2: Integer;
FProp1: string;
procedure SetProp1(const Value: string);
procedure SetProp2(const Value: Integer);
public
procedure Methd1(const A,B: string);
function Func1: Boolean;
published
[M('Prop1')]
property Prop1: string read FProp1 write SetProp1;
[M('Prop2')]
property Prop2: Integer read FProp2 write SetProp2;
end; procedure TForm1.btn1Click(Sender: TObject);
var
c: TRttiContext;
t: TRttiType;
ms: TArray<TRttiMethod>;
ps: TArray<TRttiProperty>;
fs: TArray<TRttiField>;
ats: TArray<TCustomAttribute>;
a : TCustomAttribute;
m: TRttiMethod;
p: TRttiProperty;
f: TRttiField;
begin
c := TRttiContext.Create;
t := c.GetType(TMyClass);
ms := t.GetMethods;
ps := t.GetProperties;
fs := t.GetFields;
ats := t.GetAttributes; for p in ps do
begin
for a in p.GetAttributes do
begin
if a is MAttribute then
begin
mmo1.Lines.Add(p.Name + ':' + MAttribute(a).FName);
end;
end;
end; mmo1.Lines.Add('-------------Methods-----------');
for m in ms do
mmo1.Lines.Add(m.Name);
mmo1.Lines.Add('------------Properties---------');
for p in ps do
mmo1.Lines.Add(p.Name);
mmo1.Lines.Add('--------------Fields-----------');
for f in fs do
mmo1.Lines.Add(f.Name); end;
System.Rtti.TRttiObject.GetAttributes 简例的更多相关文章
- linux下C语言socket网络编程简例
原创文章,转载请注明转载字样和出处,谢谢! 这里给出在linux下的简单socket网络编程的实例,使用tcp协议进行通信,服务端进行监听,在收到client的连接后,发送数据给client:clie ...
- system函数的应用一例
system函数的应用一例
- 5.3linux下C语言socket网络编程简例
原创文章,转载请注明转载字样和出处,谢谢! 这里给出在Linux下的简单socket网络编程的实例,使用tcp协议进行通信,服务端进行监听,在收到客户端的连接后,发送数据给客户端:客户端在接受到数据后 ...
- List元素排序简例
前言:这种处理方式,在程序中偶尔会用的到,栗子很简单,关键是加强一下记忆,以及以备后用 1:实现Comparable接口的方式 1-1:没有使用泛型,重写compareTo()方法时需要判断类型及转换 ...
- java_jdbc_spring框架查询操作简例
1.添加commons-dbcp-1.4,commons-logging,commons-pool-1.2//线程池,commons.collections-3.2.1.jar,spring.jar ...
- web Service试用简例
1.打开文件,选择新建Asp.Net web服务. 2.出现新建页面如下. using System; using System.Collections.Generic; using System.L ...
- Dapper试用简例
1.选择3.5以上框架在新建项目中引用Dapper.dll. 2.在后台写代码,代码写出来后感觉以前学的都白学了. 3. using Dapper; using System; using Syste ...
- jvm内存增长问题排查简例
jvm内存增长问题排查 排查个jvm 内存占用持续增加的问题,纪录一下,引以为戒. 运维发现应用jvm内存占用在发布后回落,然后持续增高,,dump后分析一下: 占内存的大部分是这种名字相似的bean ...
- urllib 和urllib2 模块使用简例
一.最简单的使用 import urllib,urllib2 response = urllib2.urlopen("https://www.baidu.com") print r ...
随机推荐
- HDU 4358 Boring counting 树状数组+思路
研究了整整一天orz……直接上官方题解神思路 #include <cstdio> #include <cstring> #include <cstdlib> #in ...
- NDK(22)JNI编程如何避免常见缺陷
转自 : http://www.ibm.com/developerworks/cn/java/j-jni/index.html 避免常见缺陷 假设您编写了一些新 JNI 代码,或者继承了别处的某些 J ...
- python学习中,list/tuple/dict格式化遇到的问题
昨天上了python培训的第一课,学习了基础知识.包括类型和赋值,函数type(),dir(),id(),help()的使用,list/tuple/dict的定义以及内置函数的操作,函数的定义,控制语 ...
- WIFI环境下Android手机和电脑通信
前面已经写过一篇java实现最基础的socket网络通信,这篇和之前那篇大同小异,只是将客户端代码移植到手机中,然后获取本机IP的方法略有不同. 先讲一下本篇中用到Android studio的使用吧 ...
- 字符串模式匹配sunday算法
文字部分转自:http://www.cnblogs.com/mr-ghostaqi/p/4285868.html 代码是我自己写的 今天在做LeetCode的时候,碰到一个写字符串匹配的题目: htt ...
- Oracle学习之集合运算
一.集合运算操作符 UNION:(并集)返回两个集合去掉重复值的所有的记录 UNION ALL:(并集)返回两个集合去掉重复值的所有的记录 INTERSECT:(交集)返回两个集合的所有记录,重复 ...
- UVa 1025 (动态规划) A Spy in the Metro
题意: 有线性的n个车站,从左到右编号分别为1~n.有M1辆车从第一站开始向右开,有M2辆车从第二站开始向左开.在0时刻主人公从第1站出发,要在T时刻回见车站n 的一个间谍(忽略主人公的换乘时间).输 ...
- JQuery Ajax 在asp.net中使用小结
自从有了JQuery,Ajax的使用变的越来越方便了,但是使用中还是会或多或少的出现一些让人短时间内痛苦的问题.本文暂时总结一些在使用JQuery Ajax中应该注意的问题,如有不恰当或者不完善的地方 ...
- 【.NET应用技巧】Asp.NET MVC 4 设置IIS下调试
[环境] VS 2012 IIS7.5 [问题] MVC项目在创建时和APS.NET不同,不能够选择服务器类型,不能够直接把项目创建到IIS上. 如果在项目中直接更改属性,更换调试服务器类型,会报错 ...
- ubuntu - chrome 标题栏, 书签乱码 解决
只要修改/etc/fonts/conf.d/49-sansserif.conf这个文件就行了—— 打开/etc/fonts/conf.d/49-sansserif.conf这个文件: sudo ged ...