Главная страница
    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.45 MB
Время: 0.006 c
14-26245
Vladimir Lubenchenko
2002-03-31 20:49
2002.05.09
Большая просьба к владельцам D6+Upd2 (!!!)


3-25987
Sam
2002-04-05 19:19
2002.05.09
MySQL


14-26232
Konsul
2002-03-31 00:22
2002.05.09
Звук через сеть


1-26112
KvORubin
2002-04-24 13:30
2002.05.09
Как в Image1 отобразить иконку файла ???


1-26095
Wolfez
2002-04-26 16:47
2002.05.09
Текст из Memo1 в Memo2 и Memo3





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский