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

Вниз

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

 
Gayrus   (2002-03-06 16:18) [0]

Создаю компонент с хуком, а когда просто ложу его на форму, винда пишет, мол, Программа выполнила недоступную... и т.д. В чём дело?


 
Юрий Зотов   (2002-03-06 16:59) [1]

Каков вопрос - таков ответ: в компоненте.


 
MBo   (2002-03-06 16:59) [2]

значит, ошибка уже в конструкторе


 
Dimaond Cat   (2002-03-06 22:08) [3]

у меня была такаяже пурга, и дело было именно в неправильности нарисания компонента , а именно использования в нем SetwindowsHokEx, но есть добрые люди например Юоий Зотов, короче выкладывай свой компонет (особенно ту часть где хучишь) будем искать баг.


 
Gayrus   (2002-03-07 03:50) [4]

Я даже заменил свой хук на найденый здесь, в форуме, и всёравно: function TGHook.HookProc(code:integer; wParam:Word; LParam:LongInt):LongInt;stdcall;
var Key:Word;
msg:PEVENTMSG;
Wnd:hWnd;
begin
if Code>=0 then begin
result:=0;
msg:=Pointer(LParam);
Key:=msg.paramL and 255;
Wnd:=msg.hwnd;
If FMouse then case msg.message of
WM_LBUTTONDOWN:If Assigned(FOnMouseDown)then FOnMouseDown(Self,Wnd,mbLeft);
WM_MBUTTONDOWN:If Assigned(FOnMouseDown)then FOnMouseDown(Self,Wnd,mbMiddle);
WM_RBUTTONDOWN:If Assigned(FOnMouseDown)then FOnMouseDown(Self,Wnd,mbRight);
WM_MOUSEMOVE :If Assigned(FOnMouseMove)then FOnMouseMove(Self);
end;
If FKeyBoard then case msg.message of
WM_KEYDOWN:If Assigned(FOnKeyDown)then FOnKeyDown(Self,Key);
WM_KEYUP :If Assigned(FOnKeyUp)then FOnKeyUp(Self,Key);
end;
If FWindow then case msg.message of
WM_CREATE:If Assigned(FOnWindowCreate)then FOnWindowCreate(Self,Wnd);
WM_CLOSE :If Assigned(FOnWindowClose)then FOnWindowClose(Self,Wnd);
end;
end;//If code>=0
end;


 
Юрий Зотов   (2002-03-07 12:16) [5]

Похоже, Ваш хук - это метод объекта? Это неверно, хук может быть только самостоятельной функцией, иначе в него будет неявно передаваться лишний параметр Self.


 
Виктор Щербаков   (2002-03-07 12:24) [6]


> ...иначе в него будет неявно передаваться лишний параметр Self.

Передаваться не будет, но компилятор будет генерировать код такой, как будто бы он должен передаваться.


 
Gayrus   (2002-03-07 16:11) [7]

Тогда где объявить эту функцию?


 
Юрий Зотов   (2002-03-07 17:39) [8]

Если хук локальный - можно в модуле самого компонента, если глобальный - то только в отдельной DLL.



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
4-26296
OlegG
2002-03-06 16:36
2002.05.09
Поиск окна...


14-26239
Лёша
2002-03-21 01:12
2002.05.09
---|Ветка была без названия|---


1-26132
Anton+
2002-04-24 11:45
2002.05.09
Как кнопек закрыть (в заголовке формы) присвоить ф-цию hide?


3-25996
Ser_Kham1
2002-04-15 17:39
2002.05.09
DOA и ADO


7-26276
Broot
2002-02-01 11:57
2002.05.09
Раскладка клавиатуры