Delphi 遍历类中的属性
http://blog.csdn.net/easyboot/article/details/8004954
Delphi 遍历类中的属性

版权声明:本文为博主原创文章,未经博主允许不得转载。
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls,TypInfo;
- type
- TForm1 = class(TForm)
- Button2: TButton;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- {$M+} //如果不用 {$M+} 则需要继承TPersistent
- TTest = class(TObject)
- public
- FName,FSex,FScholl:string;
- published
- property Name :string read FName write FName;
- property Sex :string read FSex write FSex;
- property Scholl :string read FScholl write FScholl;
- end;
- {$M-}
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- procedure TForm1.Button2Click(Sender: TObject);
- var
- PropCount, I: SmallInt;
- PropList: PPropList;
- PropStr,sValues: string;
- AClass:TTest;
- AStrings:TStrings;
- begin
- AStrings:=TStrings.Create;
- AClass:=TTest.Create;
- AClass.Name:='MyTest';
- AClass.Sex:='Male';
- AClass.Scholl:='Scholl';
- PropCount := GetTypeData(AClass.ClassInfo).PropCount;
- GetPropList(AClass.ClassInfo, PropList);
- for I := 0 to PropCount - 1 do
- begin
- case PropList[I]^.PropType^.Kind of
- tkClass : PropStr := '[Class] ';
- tkMethod : PropStr := '[Method]';
- tkSet : PropStr := '[Set] ';
- tkEnumeration: PropStr := '[Enum] ';
- else
- PropStr := '[Field] ';
- end;
- PropStr := PropStr + PropList[I]^.Name;
- PropStr := PropStr + ': ' + PropList[I]^.PropType^.Name;
- sValues:=GetPropValue(AClass,PropList[I].Name,True);
- ShowMessage(sValues);
- ShowMessage(PropStr);
- end;
- FreeMem(PropList);
- end;
- end.
Delphi 遍历类中的属性的更多相关文章
- Java 遍历类中的属性
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...
- java中遍历类中的属性、调用getter&setter方法
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...
- 转载:java 中对类中的属性使用set/get方法的意义和用法
经常看到有朋友提到类似:对类中的属性使用set/get方法的作用?理论的回答当然是封闭性之类的,但是这样对我们有什么作用呢?为什么要这样设计?我直接使用属性名来访问不是更直接,代码更简洁明了吗?下面我 ...
- 尚硅谷面试第一季-11MyBatis中当实体类中的属性名和表中的字段名不一样怎么办
问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是 ...
- 关于System类中out属性 实例化的问题
System类中out属性的声明是这样的: public final static PrintStream out = nullPrintStream(); private static PrintS ...
- 使用反射获取类中的属性(可用于动态返回PO类的列,当做表格的表头)
//利用反射取类中的属性字段 try { Class clazz = Class.forName("houji.bean.model.TaskModel"); Field[] fi ...
- Python 简明教程 --- 20,Python 类中的属性与方法
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 与客户保持良好的关系可以使生产率加倍. -- Larry Bernstain 目录 类中的变量称为属 ...
- Java初学者作业——定义英雄类(Hero),英雄类中的属性包括:姓名、攻击力、防御力、生命值和魔法值;方法包括:攻击、介绍。
返回本章节 返回作业目录 需求说明: 定义英雄类(Hero),英雄类中的属性包括:姓名.攻击力.防御力.生命值和魔法值:方法包括:攻击.介绍. 实现思路: 分析类的属性及其变量类型. 分析类的方法及其 ...
- Java初学者作业——定义管理员类(Admin),管理员类中的属性包括:姓名、账号、密码、电话;方法包括:登录、显示自己的信息。
返回本章节 返回作业目录 需求说明: 定义管理员类(Admin),管理员类中的属性包括:姓名.账号.密码.电话:方法包括:登录.显示自己的信息. 实现思路: 分析类的属性及其变量类型. 分析类的方法及 ...
随机推荐
- Python webdriver调用Chrome报错
报错信息如下: selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to b ...
- C# 同比缩放图片
/** * 无损缩放图片 * bitmap 需要缩放的图片 * w 需要缩放的宽度 * h 需要缩放的高度 * */ public static System.Drawing.Bitmap TBSca ...
- UEditor使用报错Cannot set property 'innerHTML' of undefined
仿用UEditor的setContent的时候报错,报错代码如下Uncaught TypeError: Cannot set property ‘innerHTML’ of undefined.调试u ...
- Spring基础14——Bean的生命周期
1.IOC容器中的Bean的生命周期方法 SpringIOC容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行定制的任务.SpringIOC容器对Bean的生命周期进行管理 ...
- logname - 显示用户登录名
总览 (SYNOPSIS) logname [OPTION]... 描述 (DESCRIPTION) 显示 当前用户 的 名字. --help 显示 帮助信息, 然后 结束. --version 显示 ...
- java Arrays源码浅出
1.toString 返回指定数组内容的字符串表示形式. demo: 由demo可窥见Arrays.toString的所做的工作就是将数组元素转换为字符串(以逗号分割数组元素,包裹在方括号中). 源码 ...
- php内置函数分析之array_fill_keys()
PHP_FUNCTION(array_fill_keys) { zval *keys, *val, *entry; if (zend_parse_parameters(ZEND_NUM_ARGS(), ...
- java: 列出本机java环境
java: 列出本机java环境 System.getProperties().list(System.out);
- java基础拓展
1. 作用域:public private protected 默认的区别 public:在同一项目中,被public修饰的在任何地方都可以被调用 private:被private修饰的,只能在本类中 ...
- C 实现 创建多个txt文件,并以自然数列命名,然后将产生的十进制数据写入txt文档
首先:以自然数列为txt命名. 这在C++中很容易实现,之间诶to_string(int num)+".txt"就可以,但是在C中没有string,只有char,那怎么办? 这里需 ...