现在位置:主页>系统编程> 文章内容

Tips通过interface的实例得到该接口的字符串名称

我要投稿更新日期:2008-07-14 点击:
 如果使用{$M+}参数来定义接口,那么程序将会为该接口生成rtti信息,例如

{$M+}
    Isome = interface
        function GeStr: string;
    end;
{$M-}

接下来,我们可以访问该接口的信息了

uses TypInfo,IntfInfo;

procedure TForm1.Button1Click( Sender: TObject );
var
    intfMd               : TIntfMetaData;
    msg : string;
begin
    GetIntfMetaData( TypeInfo( Isome ), intfMd );

    msg := msg + sLineBreak +'接口名称' + intfmd.Name ;
    msg := msg + sLineBreak +intfMd.UnitName +'单元';
    msg := msg + sLineBreak +'有' + IntToStr(Length(intfMd.MDA))+'个方法';
    msg := msg + sLineBreak +intfMd.MDA [0].Name ;
    msg := msg + sLineBreak +'调用惯例:'+CallingConventionName[    intfMd.MDA [0].CC];

    showmessage(msg);

    showMessage(GetTypeData(TypeInfo(TForm1)).UnitName); //可以得到类声明的单元

end;



所有评论

评论列表


我也评论来评论! 点击此处参与本文评论

注意:本站采用匿名评论,请各位网友注意自己的言行