Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-26145
Reals
2002-04-24 18:14
2002.05.09
Нужна функция по проверке E-Mail...


6-26207
McSimm
2002-02-24 12:24
2002.05.09
Удалить ISAPI DLL


1-26088
Alibaba
2002-04-26 15:35
2002.05.09
Мой тип.


3-26028
AAlexx
2002-04-16 16:25
2002.05.09
Удаление записей в DBGridEh


1-26160
Huliganka
2002-04-24 22:28
2002.05.09
Создание компонент из DLL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский