博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi 2010 新增功能之: Rtti 单元(5): 获取方法的更多信息
阅读量:6884 次
发布时间:2019-06-27

本文共 1243 字,大约阅读时间需要 4 分钟。

  hot3.png

方法的更多信息是指: 方法类型、返回值、参数等.

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    Memo1: TMemo;    Button1: TButton;    procedure Button1Click(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.dfm}uses Rtti,TypInfo;procedure TForm1.Button1Click(Sender: TObject);var  ms: TArray
; m: TRttiMethod; mps: TArray
; mp: TRttiParameter;begin Memo1.Clear; {先获取方法集合, 这里随便使用了 TButton 类} ms := TRttiContext.Create.GetType(TButton).GetMethods; for m in ms do begin {方法名称} Memo1.Lines.Add('方法名称: ' + m.Name); {方法类型: proceedure、function 等} Memo1.Lines.Add('方法类型: ' + GetEnumName(TypeInfo(TMethodKind), Ord(m.MethodKind))); {方法的返回值类型} if Assigned(m.ReturnType) then Memo1.Lines.Add('返回值: ' + GetEnumName(TypeInfo(TTypeKind), Ord(m.ReturnType.TypeKind))); {方法的参数列表} mps := m.GetParameters; if Length(mps) > 0 then begin Memo1.Lines.Add('参数:'); for mp in mps do Memo1.Lines.Add(mp.ToString); //还可以通过 mp.ParamType 获取参数的数据类型 //还可以通过 mp.Flags 获取参数的修饰符(譬如 var、const 等) end; Memo1.Lines.Add(EmptyStr); end;end;end.

转载于:https://my.oschina.net/hermer/blog/320501

你可能感兴趣的文章
C# 8.0的三个令人兴奋的新特性
查看>>
关于ip_conntrack跟踪连接满导致网络丢包问题的分析
查看>>
烂泥:linux学习之VNC远程控制(一)
查看>>
IT技术晋级之路-VM中系统安装
查看>>
SNIA持久化内存峰会:虚拟机、数据库、SDS进展曝光
查看>>
[Android]AndroidInject增加sqlite3数据库映射注解(ORM)
查看>>
Oracle RAC负载均衡和透明应用失败切换的配置和测试过程(二、配置实例)
查看>>
xhEditor for .net (支持上传,远程抓图)
查看>>
bleve搜索引擎是支持基于field搜索的
查看>>
CVS配置
查看>>
SharePoint 2013中的爬网最佳做法
查看>>
汉字转换为拼音以及缩写(javascript)
查看>>
Python中使用自定义类class作为海量数据结构时内存占用巨大的问题
查看>>
explain
查看>>
在纯AS工程中嵌入个别字体方法 (转载)
查看>>
c# 进程间通信
查看>>
C# Web程序打包部署问题
查看>>
linux下面某些常用命令的用法【转】
查看>>
js table操作 ------ 拖拽行为并且使其自动贴附
查看>>
DDD为何叫好不叫座?兼论DCI与业务分析的方法论
查看>>