Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.05;
Скачать: CL | DM;

Вниз

Вызов функции из юнита.   Найти похожие ветки 

 
vitv ©   (2007-07-09 10:58) [0]

Есть Unit1 в котором объявлена функция, возможно ли включить в код Unit2 функцию из Unit1?


 
Инс ©   (2007-07-09 10:59) [1]

Unit2;

interface

uses Unit1;


 
vitv ©   (2007-07-09 11:06) [2]

Не хочет..

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 11:09) [3]


> Не хочет


Не рано ли, не знаючи основ Паскаля, заниматься не самым тривиальным делом - хуками ?


 
ЮЮ ©   (2007-07-09 11:11) [4]

> Не хочет..

Это всё из implementation. А в интерфейсной части модуля есть заголовки функций?


 
ЮЮ ©   (2007-07-09 11:12) [5]

или это функции из так называемого Unit2?


 
Инс ©   (2007-07-09 11:29) [6]


> Result := CallNextHookEx(k_oldKbHook, code, wparam, lparam)


Гы-гы, сколько можно обсуждать, что так делать неправильно.


 
vitv ©   (2007-07-09 11:36) [7]

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:40) [8]

А потому что меньше Фленова читать нужно, он еще и не такое способен посоветовать. Почему - читать здесь:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=548

Это раз. А два - это то, что параметр wParam имеет тип DWORD а не Word, вы же не в 16-тиразрядной винде работаете!


 
Kolan ©   (2007-07-09 11:43) [9]

> Есть Unit1 в котором объявлена функция, возможно ли включить
> в код Unit2 функцию из Unit1?

[1]

А потом:
function MyUnit2Foo: Integer;
begin
 MyUnit1Foo;
end;


Все сабж достигнут.


 
Инс ©   (2007-07-09 11:43) [10]

Вообще очень странная у вас функция ловушки. CallNextHookEx нужно вызывать всегда! Иначе другие ловушки не сработают или, что хуже для вас, если кто-то другой не напишет CallNextHookEx или напишет неправильно, как у вас, то ваша ловушка не сработает.


 
vitv ©   (2007-07-09 12:07) [11]

А как эта книга?

Delphi. Народные советы (+ CD-ROM)
А. Шкрыль (2007)

Рассмотрен широкий круг практических вопросов по программированию в Delphi: трюки и хитрости использования стандартных компонентов, готовые решения для повседневных задач, работа с СУБД (ORACLE, Interbase/Firebird, MySQL, MS SQL Server), взаимодействие с мультимедиа... далее

http://oz.by/books/more1029282.html


 
Инс ©   (2007-07-09 12:09) [12]


> А как эта книга?


Не читал. Если интересуетесь ситемным прграммированием, рекомендую Рихтера. Там правда хуки не рассматриваются, но из той информации, что там есть, можно самому понять, как они работают.



Страницы: 1 вся ветка

Текущий архив: 2007.08.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
15-1183887525
ArtemESC
2007-07-08 13:38
2007.08.05
Есть ли какие-нибудь форумы где можно задавать ...


15-1183026826
tesseract
2007-06-28 14:33
2007.08.05
Футболки к ММП


3-1177497003
roman_ln
2007-04-25 14:30
2007.08.05
Как проверить есть ли таблица в базе данных?


2-1183442387
..::KraN::..
2007-07-03 09:59
2007.08.05
Округление дроби


11-1166730914
MTsv DN
2006-12-21 22:55
2007.08.05
Ошибка в FileSize