Delphi中关于Rtti的一些操作(一)
function TForm1.ShowMethodAddress(aObj: TDerived; const sData: String) : Pointer;
var
aPtr : Pointer;
sResult : String;
begin
try
aPtr := aObj.MethodAddress(sData);
sResult := Format('%s : %x', [sData + '位于', Integer(aPtr)]);
Memo1.Lines.Add(sResult);
except
on e : Exception do
begin
sResult := Format('%s : %s', [sData, e.Message]);
Memo1.Lines.Add(sResult);
end;
end;
Result := aPtr;
end;
procedure TForm1.ShowFieldAddress(aObj: TDerived; const sData: String);
var
aPtr : Pointer;
sResult : String;
begin
try
aPtr := aObj.FieldAddress(sData);
sResult := Format('%s : %x', [sData + '位于', Integer(aPtr)]);
Memo1.Lines.Add(sResult);
except
on e : Exception do
begin
sResult := Format('%s : %s', [sData, e.Message]);
Memo1.Lines.Add(sResult);
end;
end;
end;
procedure TForm1.Button8Click(Sender: TObject);
var
sData : String;
aPtr : Pointer;
begin
aPtr := Pointer(@Self.OnClick);
sData := MethodName(aPtr);
sData := Format('%x : %s', [Integer(aPtr), sData]);
Memo1.Lines.Add(sData);
end;
http://blog.csdn.net/diligentcatrich/article/details/7725782
Delphi中关于Rtti的一些操作(一)的更多相关文章
- Delphi中的Rtti函数
TTypeKind,类型类别,tkclass,tkinteger,tkstring等.类,属性都是一种类型. ttypedata,是一个record包括ttypekind.是一个类的描述.TTypeK ...
- 关于Delphi中TRttiContext.FindType失效的问题
自从Delphi2010后,Delphi中的Rtti功能得到了增强.我们终于可以不用先RegisterClass,再GetClass获取类的信息了.而只是简单的通过TRttiContext.GetTy ...
- delpi中的RTTI初试
java中的反射机制使我们能够在运行期间获取运行期类的信息,那么在delphi中有没有这样的功能呢?答案是有,实现这种功能的机制在delphi中叫做RTTI,废话少说,先来一段demo: 1.先定义一 ...
- Delphi中exit、break、continue等跳出操作的区别
Delphi中表示跳出的有break,continue,abort,exit,halt,runerror等 1.break 强制退出最近的一层循环(注意:只能放在循环里:而且是只能跳出最近的一层循环) ...
- Delphi中文本文件的操作
Delphi中文本文件的操作 相关知识内容: 在对文本文件进行任何处理之前,首先要打开此文本文件.声明变量:通过此变量可以来引用一个文本文件. 打开一个文件需要两步:首先是 AssignFile(), ...
- YxdJSON - Delphi 高性能 JSON 库(支持RTTI和序列化操作)
源:YxdJSON - Delphi 高性能 JSON 库(支持RTTI和序列化操作) Delphi 高性能 JSON 库(支持RTTI和序列化操作) 支持平台: Windows, Android, ...
- Delphi中的操作二进制文件的两个重要函数
Delphi中的操作二进制文件的两个重要函数 对于通过Byte数组进行文件操作的,在FTP中经常会使用到,我也是在Delphi调用Web Service进行文件的上传和下载时找到这两个函数的,挺好用的 ...
- delphi中我用定时器每隔一段时间执行操作
delphi中,我用定时器每隔一段时间执行数据库插入及更新工作!adoquery.close;adoquery.sql.cleare;adoquery.connection:=con1;adoquer ...
- Delphi下的RTTI函数大全
http://ljz9425.blog.163.com/blog/static/369148572008111635253858/ Delphi下的RTTI(下) 2008-12-16 15:52:5 ...
随机推荐
- 物流追踪 - -GPS和GPRS应用
源码1: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<termios.h ...
- 复习知识点:XML解析数据,JOSN解析数据,GET请求数据,POST请求数据
GDataXMLDocument-XML解析 #pragma mark - ======== Dom XML解析 - (IBAction)domParserActionXML_Document:(id ...
- RAC Cache Fusion 原理理解
cache fusion . grd . drm . gcs . ges cache fusion 1.RAC是一个数据库执行在多个实例上.通过DLM(Distributed ...
- db2 xml 转 table【XQuery系列】
版本号:DB2 Version 9.1 1.创建測试表,初始化数据 create table emp (doc XML); INSERT INTO EMP VALUES ('<dept bl ...
- C#_会员管理系统:开发五(用户注册)
创建一个新的用户注册窗体(VIPRegistration.cs): 用户注册窗体(VIPRegistration.cs)详细代码如下: using System; using System.Colle ...
- c++, 虚基派生 : 共同基类产生的二义性的解决办法
虚基派生 //虚继承 #include <iostream> using namespace std; #include <string> //---------------- ...
- 面向对象程序设计-C++ Operator Overloading & Type conversion (Static)【第十一次上课笔记】
本次上课继续讲解了 [ ] .-> 等运算符重载的具体例子 也讲解了C++单个参数的类的类型转换的案例 最后稍微提到了 static 的第三种作用:静态数据成员 具体详解我都已注释出来了,大家可 ...
- form的验证用法
models.py forms.py html页面 第二种方法: 不继承model直接自定义内容 获得内容: if form.is_valid(): price = reques ...
- 基于visual Studio2013解决算法导论之042单源最短路径
题目 单源最短路径 解决代码及点评 // 26单源最短路径bellmanford.cpp : 定义控制台应用程序的入口点. // #include <iostream> #incl ...
- Android的BUG(一) - HTML 5 播放streaming video造成卡住的问题
这个bug,是google自带的问题. 和见到的诸多android的疑难问题一样,这又是一个可以归类为 多线程同步/状态机 问题. 问题处在NuPlayer的异步消息的handle中,现象和原因不细说 ...