我在类中pulished 部分定义一个name方法
我想通过在运行中读出类中的所有的方法信息(方法名,参数类型等)...高手指点

解决方案 »

  1.   

    用TObject的类方法MethodAddress方法.
      

  2.   

    当然类中不只有name这个方法,我只是想要取出一个类中所有方法的处理
      

  3.   

    //参考如下代码:
    type
     PVmtMethod = ^TVmtMethod;
     TVmtMethod = packed record
       Size: Word;
       Address: Pointer;
       Name: ShortString;
     end;
     PVmtMethodTable = ^TVmtMethodTable;
     TVmtMethodTable = packed record
       Count: Word;
       Methods: array [0..MaxListSize] of Char;
     end;procedure TForm1.Button2Click(Sender: TObject);
    var
      vMethodTable: PVmtMethodTable;
      vMethod: PVmtMethod;
      vSize: Integer;
      I: Integer;
    begin
      vMethodTable := PPointer(PInteger(Self)^ + vmtMethodTable)^;
      Memo1.Clear;
      vSize := 0;
      for I := 0 to vMethodTable^.Count - 1 do
      begin
        vMethod := @vMethodTable^.Methods[vSize];
        Memo1.Lines.Add(vMethod^.Name);
        Inc(vSize, vMethod^.Size);
      end;
    end;