如:
ttest = record
name: string;
id: integer;
end;var
t: ttest;怎样得到ttest含有的字段的名称?即name 和id枚举类型可以得到
如: ttest1 = (aaa, bbb, ccc)GetEnumName(typeinfo(ttest1), 1); // typinfo.pas
ttest = record
name: string;
id: integer;
end;var
t: ttest;怎样得到ttest含有的字段的名称?即name 和id枚举类型可以得到
如: ttest1 = (aaa, bbb, ccc)GetEnumName(typeinfo(ttest1), 1); // typinfo.pas
解决方案 »
- 什么绘图工具专业又强大
- XPMenu的MainMenu菜单标题靠右
- 文本文件读入MEMO的问题?分数少大家帮帮忙在线等待~!
- 怒
- 消息处理:为什么在处理 WM_PAINT 消息时我去掉了 inherited 但是窗体还是能够显示?
- 简单的问题,delphi如何输出debug信息。
- 关于ToolBar的问题?解决后再给100分!
- clientsocket是不是必须对方用了serversocket才能用?
- 如何让鼠标的滑轮控制ScrollBox上的竖着的滚动条.
- 如何操纵RichTextEdit控件???
- 请问如下DBGrid功能如何实现?
- 简单的问题却困扰了我几天,关于fastreport的[悬赏50分]
record类型的字段名字只对源程序有效,其实就是助记符号。
编译成执行程序后,名字就成了对内存地址的引用,或者说 某个地址+偏移量 就成了你的记录中的某部分。
这和枚举是完全不同的概念,枚举就是为了方便程序员把无序的东西排列起来,当然要把无序的东西名称记住并使用起来了。
record是可以事先确定内存大小的,是严格按照字段类型分配空间的,所以不需要名字就可以访问。
毕竟字符串比较的速度无法和基本运算加减法相比。
name: string;
id: integer;
end;var
t: ttest;
//如果只是这个例子,直接看他是不是String,是的就是name,不是就是integer.
一字节的变量里保存了一个#13
用byte类型显示13
如果char类型,表示回车
毕竟record只是一些变量的集合,不像对象一样可以通过is来判断类型...