Форум: "WinAPI";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c