Ich würde gerne die Prinzipien des Hinzufügens von Methoden zu RTTI verstehen (ich meine die alte, die von alten Delphi-Versionen (vor Delphi 2010) oder von FPC unterstützt wird). Soweit ich weiß, soll die RTTI Informationen über veröffentlichte Methoden haben. Aber das folgende Beispiel funktioniert nicht in meinem Fall:Delphi: Welche Methoden sollen in RTTI sein?
{$M+}
TMyClass = class
published
procedure testfn(a,b,c: Integer);
end;
{$M-}
...
procedure TMyClass.testfn(a,b,c: Integer);
begin
ShowMessage('s');
end;
...
GetPropInfo(TMyClass, 'testfn'); // returns nil
Ich möchte verstehen, was ich ändern müssen PPropInfo für das Verfahren zu erhalten.
Ich möchte die PTypeInfo für die Methode abrufen. Im Falle einer Eigenschaft kann es über
PropInfo := GetPropInfo(...);
TypeInfo := PropInfo^.PropType;
TypeData := GetTypeData(TypeInfo);
abgerufen werden Ich brauche so etwas für Methoden.
[ 'GetPropInfo'] (http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/[email protected]@string.html) wird für Eigenschaften verwendet, nicht für Methoden ... – whosrdaddy
@whosrdaddy okay, ich brauche das Äquivalent davon dann. Schließlich möchte ich TTypeData für die Methode abrufen. – Int0h
Was Sie brauchen, ist [Method Adresse] (http://docwiki.embarcadero.com/Libraries/Seattle/de/System.TObject.MethodAddress) –