![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызов функции из юнита. [D7, XP]
vitv © (2007-07-09 10:58:00)Есть Unit1 в котором объявлена функция, возможно ли включить в код Unit2 функцию из Unit1?
Инс (2007-07-09 12:09:00) [1]
> А как эта книга?
Не читал. Если интересуетесь ситемным прграммированием, рекомендую Рихтера. Там правда хуки не рассматриваются, но из той информации, что там есть, можно самому понять, как они работают.
vitv (2007-07-09 12:07:00) [2]А как эта книга?
Delphi. Народные советы (+ CD-ROM)
А. Шкрыль (2007)
Рассмотрен широкий круг практических вопросов по программированию в Delphi: трюки и хитрости использования стандартных компонентов, готовые решения для повседневных задач, работа с СУБД (ORACLE, Interbase/Firebird, MySQL, MS SQL Server), взаимодействие с мультимедиа... далее
http://oz.by/books/more1029282.html
Kolan (2007-07-09 11:43:00) [3]> Есть Unit1 в котором объявлена функция, возможно ли включить
> в код Unit2 функцию из Unit1?
[1]
А потом:
function MyUnit2Foo: Integer;
begin
MyUnit1Foo;
end;
Все сабж достигнут.
Инс (2007-07-09 11:43:00) [4]Вообще очень странная у вас функция ловушки. CallNextHookEx нужно вызывать всегда! Иначе другие ловушки не сработают или, что хуже для вас, если кто-то другой не напишет CallNextHookEx или напишет неправильно, как у вас, то ваша ловушка не сработает.
Инс (2007-07-09 11:40:00) [5]А потому что меньше Фленова читать нужно, он еще и не такое способен посоветовать. Почему - читать здесь:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=548
Это раз. А два - это то, что параметр wParam имеет тип DWORD а не Word, вы же не в 16-тиразрядной винде работаете!
vitv (2007-07-09 11:36:00) [6]var
----------
function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;
procedure KeyBoardOff;
procedure KeyBoardOn;
Забыл растяпа.....
> Инс © (09.07.07 11:29) [6]
> > Result := CallNextHookEx(k_oldKbHook, code, wparam, lparam)Гы-
> гы, сколько можно обсуждать, что так делать неправильно.
>
--------------------
А почему?
Инс (2007-07-09 11:29:00) [7]
> Result := CallNextHookEx(k_oldKbHook, code, wparam, lparam)
Гы-гы, сколько можно обсуждать, что так делать неправильно.
ЮЮ (2007-07-09 11:12:00) [8]или это функции из так называемого Unit2?
ЮЮ (2007-07-09 11:11:00) [9]> Не хочет..
Это всё из implementation. А в интерфейсной части модуля есть заголовки функций?
Сергей М. (2007-07-09 11:09:00) [10]
> Не хочет
Не рано ли, не знаючи основПаскаля, заниматься не самым тривиальным делом - хуками ?
vitv (2007-07-09 11:06:00) [11]Не хочет..
function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;
begin
if code < 0 then
Result := CallNextHookEx(k_oldKbHook, code, wparam, lparam)
else
Result := 1;
end;
procedure KeyBoardOff;
begin
k_OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);
end;
procedure KeyBoardOn;
begin
if k_OldKbHook <> 0 then
begin
UnHookWindowshookEx(k_OldKbHook);
k_OldKbHook := 0;
end;
Инс (2007-07-09 10:59:00) [12]Unit2;
interface
uses Unit1;