Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
ВнизRTTI Найти похожие ветки
← →
stikriz (2003-02-16 00:28) [0]Мастера, кто-нибудь вызывал метод класса, если я знаю какой он, и что он точно есть, но не знаю его уазатель? Понятно, что он где-то в виртуальной таблице, но как узнать его номер? Может, как-то по другому?
Николай.
← →
Юрий Зотов (2003-02-16 09:50) [1]Если он published - то действительно RTTI.
procedure CallNotifyEventHandler(Obj, Sender: TObject; Method: string);
var
M: TMethod;
begin
M.Code := Obj.MethodAddress(Method);
if M.Code <> nil then
begin
M.Data := Obj;
TNotifyEvent(M)(Sender)
end
else raise Exception.CreateFmt("Method %s not found", [Method])
end;
Для других типов методов - то же самое, только M надо приводить к соответствующему типу (если он нестандартный, то его надо объявить) и соответственно изменить список параметров.
← →
stikriz (2003-02-16 21:59) [2]
Спасибо, Юрий Зотов !
Николай.
p.s.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c