TABC.SetCaption(AValue:string);
begin
  //如何得到方法名'SetCaption'
end;

解决方案 »

  1.   

    TABC.SetCaption(AValue:string);
    begin
      直接用字符串'SetCaption'~~
    end;如果没有RTTI,方法的名称是不被保留的,就存一个调用地址而已~~
    即使有RTTI要取这个名字也会花不少力气~~
    还不如直接使用方法名的字符串,难道编写代码的时候你不知道?~~
    能取得又咋地?还不是要在每个方法里加代码?所以无实用价值~~
      

  2.   

    我到不这么认为,我觉得取得这个是有意义的,至少对rtti有了一定的了解,正如
    http://blog.codelphi.com/nil/archive/2004/06/18/14857.aspx我写的一样,就使用了rtti的东西,就很方便了
      

  3.   

    那你还不如用断言函数,可以把文件名行数都列出来~~
    Assert()“麻烦”自己编些小工具做下文本的替换~~
    或者利用键盘宏也可以处理,就不“麻烦”了~~
      

  4.   

    delphi的Assert得到的信息好像无法截获,它只会show出来,无法写到日志里
      

  5.   

    不过有个jedi的控件好像可以做这件事,包括出错的单元和行数
      

  6.   

    有个取得函数地址指针的GetProcxxxx的什么api要用到,才能解决.