Вниз
Скачать: CL | DM;

OnMessage в Kol   Найти похожие ветки 

← →
OnMessage   (2003-09-06 08:42) [0]

function OnHotKey( var Msg: TMsg; var Rslt: Integer ): Boolean;
begin
if Msg.message=WM_HotKey then //например

.............
Result:=true;
end;

MainForm.OnMessage:=TOnMessage(MakeMethod(nil,@OnHotKey));

Выдает Runtime error,что я делаю неправильно?


← →
Кладов   (2003-09-06 09:54) [1]

Процедура-метод (функция-метод) объекта (класса) отличается от регулярной процедуры (функции) только наличием скрытого первого параметра, представляющего собой переменную Self объекта. Практически все события описаны как procedure(...) of object или function( ... ):... of object, т.е. обработчиком должен быть метод объекта (класса). Если требуется использовать регулярную процедуру или функцию, недостающий параметр должен быть описан явно:
function OnHotKey( Dummy_Self: PObj; var Msg: TMsg; var Rslt: Integer ): Boolean;
В этом случае на месте первого параметра правильно передается тот объект, который был задан первым параметром функции MakeMethod (в выше приведенном коде это nil). Если же этот параметр пропущен, то nil передается на месте параметра Msg, из-за чего и происходит ошибка во время исполнения.


← →
Gandalf ©   (2003-09-06 15:30) [2]

http://kol.mastak.ru/FAQ.htm#10

Агх! Товарищу строгий выговор за такой вопрос!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
8-1071569422
Ivolg
2003-12-16 13:10
2004.04.18
Перемотка


14-1080403162
PVOzerski
2004-03-27 18:59
2004.04.18
Кто-нибудь знает: мамка VT501 для P1 держит ли SIMM ы и DIMM?


3-1079941197
VIB
2004-03-22 10:39
2004.04.18
DBGRID


7-1076592347
BJValentine
2004-02-12 16:25
2004.04.18
Трудности с DLL


1-1080814460
rainy day
2004-04-01 14:14
2004.04.18
Как создать обрабочик для события.




   Наверх