Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Liste aller Methoden eines Objects zur Laufzeit erstelle

  Alt 26. Mai 2008, 13:58
Weis nicht, ob es dafür bereits eine Funktion gibt.
Delphi-Quellcode:
procedure getMethodList(aClass:TClass; const List:TStrings);
Type PMethodEntry=^TMethodEntry;
     TMethodEntry=packed record
       size:Word;
       Adr:pointer;
       Name:Shortstring;
     end;
var mTable:ppointer;
    ClassName:String;
    MethodCount:PWord;
    MethodEntry:PMethodEntry;
    i:integer;
begin
  while aClass<>nil do
  begin
    mTable:=pointer(integer(aClass)+vmtMethodTable);
    if (mTable<>nil)and(mTable^<>nil) then
    begin
      MethodCount:=mTable^;
      MethodEntry:=pointer(integer(MethodCount)+2);
      ClassName:=aClass.ClassName;
      for i:=1 to MethodCount^ do
      begin
        List.add(aClass.ClassName+'.'+MethodEntry^.Name);
        MethodEntry:=pointer(integer(MethodEntry)+MethodEntry^.size);
      end;
    end;
    aClass:=aClass.ClassParent;
  end;
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat