http://blog.csdn.net/easyboot/article/details/8004954

Delphi 遍历类中的属性

2012-09-21 16:45 2125人阅读 评论(1) 收藏 举报
 分类:
Delphi(54) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

  1. unit Unit1;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, StdCtrls,TypInfo;
  6. type
  7. TForm1 = class(TForm)
  8. Button2: TButton;
  9. procedure Button1Click(Sender: TObject);
  10. procedure Button2Click(Sender: TObject);
  11. private
  12. { Private declarations }
  13. public
  14. { Public declarations }
  15. end;
  16. {$M+} //如果不用 {$M+} 则需要继承TPersistent
  17. TTest = class(TObject)
  18. public
  19. FName,FSex,FScholl:string;
  20. published
  21. property Name :string read FName write FName;
  22. property Sex :string read FSex write FSex;
  23. property Scholl :string read FScholl write FScholl;
  24. end;
  25. {$M-}
  26. var
  27. Form1: TForm1;
  28. implementation
  29. {$R *.dfm}
  30. procedure TForm1.Button2Click(Sender: TObject);
  31. var
  32. PropCount, I: SmallInt;
  33. PropList: PPropList;
  34. PropStr,sValues: string;
  35. AClass:TTest;
  36. AStrings:TStrings;
  37. begin
  38. AStrings:=TStrings.Create;
  39. AClass:=TTest.Create;
  40. AClass.Name:='MyTest';
  41. AClass.Sex:='Male';
  42. AClass.Scholl:='Scholl';
  43. PropCount := GetTypeData(AClass.ClassInfo).PropCount;
  44. GetPropList(AClass.ClassInfo, PropList);
  45. for I := 0 to PropCount - 1 do
  46. begin
  47. case PropList[I]^.PropType^.Kind of
  48. tkClass      : PropStr := '[Class] ';
  49. tkMethod     : PropStr := '[Method]';
  50. tkSet        : PropStr := '[Set]   ';
  51. tkEnumeration: PropStr := '[Enum]  ';
  52. else
  53. PropStr := '[Field] ';
  54. end;
  55. PropStr := PropStr + PropList[I]^.Name;
  56. PropStr := PropStr + ': ' + PropList[I]^.PropType^.Name;
  57. sValues:=GetPropValue(AClass,PropList[I].Name,True);
  58. ShowMessage(sValues);
  59. ShowMessage(PropStr);
  60. end;
  61. FreeMem(PropList);
  62. end;
  63. end.

Delphi 遍历类中的属性的更多相关文章

  1. Java 遍历类中的属性

    public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...

  2. java中遍历类中的属性、调用getter&setter方法

    public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...

  3. 转载:java 中对类中的属性使用set/get方法的意义和用法

    经常看到有朋友提到类似:对类中的属性使用set/get方法的作用?理论的回答当然是封闭性之类的,但是这样对我们有什么作用呢?为什么要这样设计?我直接使用属性名来访问不是更直接,代码更简洁明了吗?下面我 ...

  4. 尚硅谷面试第一季-11MyBatis中当实体类中的属性名和表中的字段名不一样怎么办

    问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是 ...

  5. 关于System类中out属性 实例化的问题

    System类中out属性的声明是这样的: public final static PrintStream out = nullPrintStream(); private static PrintS ...

  6. 使用反射获取类中的属性(可用于动态返回PO类的列,当做表格的表头)

    //利用反射取类中的属性字段 try { Class clazz = Class.forName("houji.bean.model.TaskModel"); Field[] fi ...

  7. Python 简明教程 --- 20,Python 类中的属性与方法

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 与客户保持良好的关系可以使生产率加倍. -- Larry Bernstain 目录 类中的变量称为属 ...

  8. Java初学者作业——定义英雄类(Hero),英雄类中的属性包括:姓名、攻击力、防御力、生命值和魔法值;方法包括:攻击、介绍。

    返回本章节 返回作业目录 需求说明: 定义英雄类(Hero),英雄类中的属性包括:姓名.攻击力.防御力.生命值和魔法值:方法包括:攻击.介绍. 实现思路: 分析类的属性及其变量类型. 分析类的方法及其 ...

  9. Java初学者作业——定义管理员类(Admin),管理员类中的属性包括:姓名、账号、密码、电话;方法包括:登录、显示自己的信息。

    返回本章节 返回作业目录 需求说明: 定义管理员类(Admin),管理员类中的属性包括:姓名.账号.密码.电话:方法包括:登录.显示自己的信息. 实现思路: 分析类的属性及其变量类型. 分析类的方法及 ...

随机推荐

  1. 2019全国大学生数学建模竞赛(高教社杯)A题题解

    文件下载:https://www.lanzous.com/i6x5iif 问题一 整体过程: 0x01. 首先,需要确定燃油进入和喷出的间歇性工作过程的时间关系.考虑使用决策变量对一段时间内燃油进入和 ...

  2. wordpress各个文件作用详解

    1.index.php:wordpress核心索引文件,即博客输出文件. 2.license.txt:WordPress GPL许可证文件. 3.my-hacks.php:定义了博客输出之前处理的追加 ...

  3. MySQL索引面试题分析(索引分析,典型题目案例)

    [建表语句] create table test03( id int primary key not null auto_increment, c1 char(10), c2 char(10), c3 ...

  4. 06.Linux系统-GitLab版本控制服务安装部署

    官方文档:https://about.gitlab.com/install/#centos-7 1.yum install -y curl policycoreutils-python openssh ...

  5. ELK集群搭建

    基于5台虚拟机,搭建ELK集群. 方案: 1. ELK是日志分析平台,而不是一款软件,是一整套解决方案,是三个软件产品的首字母缩写,ELK分别代表: Elasticsearch:负责日志检索和储存 L ...

  6. GUI学习之十六——QSpinBox学习总结

    我们在上一章讲了步长调节器QAbstractSpinBox,这一节来讲一下它的一个子类:QSpinBox 一.描述 QSpinBox是一个主要处理整数和离散值集合的步长调节器控件,它允许用户通过单击增 ...

  7. LockSupport详解

    concurrent包是基于AQS (AbstractQueuedSynchronizer)框架的,AQS框架借助于两个类: Unsafe(提供CAS操作) LockSupport(提供park/un ...

  8. [USACO2009 OPEN] 滑雪课 Ski Lessons

    洛谷P2948 看到题目就觉得这是动规但一直没想到如何状态转移……看了别人的题解之后才有一些想法 f[i][j]:前i单位时间能力值为j可以滑的最多次数 lessons[i][j]:结束时间为i,获得 ...

  9. 在浏览器下载pdf,或者txt文档是会直接打开

    window.location.href = url会直接打开,解释大概是因为浏览器自身可以解析.pdf或者txt.解决方法如下: 本来就要用a标签里面加上download属性的,结果发现不行,就算了 ...

  10. bullet学习日记

    最近需要bullet用物理引擎做一个测量类的项目,因为半途接手,物理部分其实已经实现,但犹于对bullet基本不了解,导致相关部分完全改不动,这两天静下心来把物理引擎用法了解了一翻,顺便做点笔记,以便 ...