Главная страница
    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.006 c
7-26277
lun
2002-02-12 01:28
2002.05.09
Как зделать чтобы дочерние окна были видны как отдельные, т.е. не сворачивались с главным окном и были доступны через панель задач.


4-26313
Анонимщик
2002-03-05 10:43
2002.05.09
Чувствительность курсора мыши к перемещениям


3-26026
Кэп
2002-04-16 15:26
2002.05.09
Как программно задать нужную кодировку таблицы?


1-26053
Финик
2002-04-25 13:33
2002.05.09
при создании листа Excel задать формат ячейки


1-26057
Димка
2002-04-25 18:45
2002.05.09
Как запретить кнопку





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