Delphi 2010新機能之:Rttiユニット(5):取得方法の詳細
1348 ワード
メソッドの詳細は、メソッドタイプ、戻り値、パラメータなどを指す.
unit Unit1;
interface
uses
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<TRttiMethod>;
m: TRttiMethod;
mps: TArray<TRttiParameter>;
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.