Я хотел бы понять принципы добавления методов к RTTI (я имею в виду старый, который поддерживается старыми версиями Delphi (до Delphi 2010) или FPC). Насколько я знаю, RTTI должен иметь информацию об опубликованных методах. Но следующий пример не работает в моем случае:Delphi: Какие методы должны быть в RTTI?
{$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
Я хотел бы понять, что мне нужно изменить, чтобы получить PPropInfo для метода.
Я хочу получить PTypeInfo для метода. В случае имущества его можно получить через
PropInfo := GetPropInfo(...);
TypeInfo := PropInfo^.PropType;
TypeData := GetTypeData(TypeInfo);
Мне нужно что-то подобное для методов.
[ 'GetPropInfo'] (http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/[email protected]@string.html) используется для свойств не для методы ... – whosrdaddy
@whosrdaddy в порядке, мне нужно его эквивалент. В конце концов я хочу получить TTypeData для этого метода. – Int0h
Что вам нужно [Адрес метода] (http://docwiki.embarcadero.com/Libraries/Seattle/en/System.TObject.MethodAddress) –