易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi 的RTTI机制浅探

http://www.delphibbs.com/delphibbs/dispq.asp?lid=2420610
目录
===============================================================================

RTTI 简介
⊙ 类(class) 和 VMT 的关系
⊙ 类(class)、类的类(class of class)、类变量(class
variable) 的关系
⊙ TObject.ClassType 和 TObject.ClassInfo
⊙ is 和 as
运算符的原理
⊙ TTypeInfo – RTTI 信息的结构
⊙ 获取类(class)的属性(property)信息

获取方法(method)的类型信息
⊙ 获取有序类型(ordinal)、集合(set)类型的 RTTI 信息
⊙ 获取其它数据类型的 RTTI
信息
===============================================================================
本文排版格式为:
 
  正文由窗口自动换行;所有代码以 80
字符为边界;中英文字符以空格符分隔。
(作者保留对本文的所有权利,未经作者同意请勿在在任何公共媒体转载。)
正文
===============================================================================

RTTI
简介
===============================================================================
RTTI(Run-Time
Type Information) 翻译过来的名称是“运行期类型信息”,也就是说可以在运行期获得数据类型或类(class)的信息。这个 RTTI
到底有什么用处,我现在也说不清楚。我是在阅读 Delphi 持续机制的代码中发现了很多 RTTI 的运用,只好先把 RTTI
学习一遍。下面是我的学习笔记。如果你发现了错误请告诉我。谢谢!
Delphi 的 RTTI 主要分为类(class)的 RTTI 和一般数据类型的
RTTI,下面从类(class)开始。
===============================================================================

类(class) 和 VMT
的关系
===============================================================================
一个类(class),从编译器的角度来看就是一个指向
VMT 的指针(在后文用 VMTptr 表示)。在类的 VMTptr 的负地址方向存储了一些类信息的指针,这些指针的值和指针所指的内容在编译后就确定了。比如
VMTptr - 44 的内容是指向类名称(ClassName)的指针。不过一般不使用数值来访问这些类信息,而是通过 System.pas 中定义的以 vmt
开头的常量,如 vtmClassName、vmtParent 等来访问。
类的方法有两种:对象级别的方法和类级别的方法。两者的 Self
指针意义是不同


相关文档:

谁说Delphi没有哈希

谁说Delphi没有哈希?--Delphi中,TStringList和THashedStringList的性能对比
曾经看到很多人在嚷嚷Delphi没有哈希表,这些人的动手意识姑且不论,却还有很多人以此来证明Delphi比别的语言垃圾,实在是...
好,牢骚打住,转接正题。
TStringList是我们常用的字符串列表类型,用法就不在这里赘述,但是,在数据其项数增 ......

Delphi~~

   最近要做一个图书管理系统,并且是用Delphi软件开发,很多都不懂,本来是可以从网上下载,学习一下的,可是不知道怎么破解登陆密码,运行时没办法登陆进去,5555~~好好学习,有高手指点就好了…… ......

Delphi编译指令说明

《Delphi下深入Windows核心编程》(附录A Delphi编译指令说明)
摘抄人:麻子 qq:71892967
Delphi快速高小的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流,大部分情况下不需要干涉编译器的运行,但是有时也需要对编译器进行必要的设置。
*************************************************** ......

delphi 快捷键

 Ctrl+PageUp      将光标移至本屏的第一行,屏幕不滚动。
 Ctrl+PageDown    将光标移至本屏的最后一行,屏幕不滚动。
 Ctrl+↓          向下滚动屏幕,光标跟随滚动不出本屏。
 Ctrl+↑ &nb ......

Delphi PureAPIWindow program

program PureAPIWindow;
uses
SysUtils,
Windows,
Messages;
const
WinClassName = 'DvsClass';
StrOut = 'Davis TextOut';
//窗口回调函数
function MyWinProc(
hWindow: HWND;
aMessage: UINT;
WParam: WPARAM;
LParam: LPARAM): LRESULT; stdcall; export; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号