Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.27;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
1-87370
victor_ch
2003-02-15 11:33
2003.02.27
Как выделить в Richedite кусок текста


1-87512
dimonf
2003-02-16 14:03
2003.02.27
Как отключить анимацию MDI окна???


6-87606
GobliNGuT
2003-01-09 10:07
2003.02.27
NMHTTP, помогите разобраться с исключениями


6-87580
ApTuCT
2002-12-14 20:00
2003.02.27
Как реализовать TWebBrowser с разными куками?


1-87540
Антон.
2003-02-17 10:49
2003.02.27
Что лучше использовать WinExec или ShellExecute