Delphi中关于Rtti的一些操作(一)
2016-02-25 18:24
579 查看
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
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中运行时改变panel的位置及大小(通过wm_SysCommand来实现)
- Delphi下用API代码创建Form
- Delphi中MethodAddress汇编代码的解析
- 用Delphi进行word开发
- Delphi中多标签页面的实现
- 关于Delphi中TRttiContext.FindType失效的问题
- Delphi中拖动无边框窗口的5种方法
- Delphi TListView刷新闪烁问题
- Delphi中关于资源释放(Free/release/freeAndNil)的一点体会
- delphi控件安装(重安装系统也不用再安装)
- Delphi - 软件注册的一个例子
- 深入VCL源码研究DELPHI窗体的创建和关闭
- Delphi XE4 For IOS 之SQLite初试
- Delphi XE4 For IOS中程序的调试(虚拟机,真实机和win32)
- .net C# inputBox文字输入对话框,类似delphi的inputBox
- delphi7打开的时候一直让说注册失效,然后不让进入到开发界面
- delphi socket使用心得
- Delphi7编译时,发生Access violation at address 00A7B628 in module 'dcc70.dll'. Read of address 00000000.(Delphi6升级到Delphi7)
- Delphi 运行Word VBA 宏 删除软回车
- 转:Delphi XE4 语言变化 [Weak] [Unsafe]