Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: 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 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
1-1080713994
DimonNew
2004-03-31 10:19
2004.04.18
HTML средствами Delphi


1-1079440668
PiratA
2004-03-16 15:37
2004.04.18
Excel


14-1080526193
Думкин
2004-03-29 06:09
2004.04.18
С днем рождения! 29 марта.


7-1076567338
gid
2004-02-12 09:28
2004.04.18
Как определить загруженность процессора в Win XP ?


7-1076629252
Германн
2004-02-13 02:40
2004.04.18
Подскажите, если кто может, направление поиска!