Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как скрыть контекстное меню TWebBrowser [D7, XP]


XRMiPO ©   (2008-04-03 18:05:00) 

Нашел такой код:

var
 HookID: THandle;

function MouseProc(nCode: Integer; wParam, lParam: Longint): Longint; stdcall;
var
 szClassName: array[0..255] of Char;
const
 ie_name = 'Internet Explorer_Server';
begin
 case nCode < 0 of
   True:
     Result := CallNextHookEx(HookID, nCode, wParam, lParam)
 else
   case wParam of
     WM_RBUTTONDOWN,
       WM_RBUTTONUP:
       begin
         GetClassName(PMOUSEHOOKSTRUCT(lParam)^.HWND, szClassName,
           SizeOf(szClassName));
         if lstrcmp(@szClassName[0], @ie_name[1]) = 0 then
           Result := HC_SKIP
         else
           Result := CallNextHookEx(HookID, nCode, wParam, lParam);
       end
   else
     Result := CallNextHookEx(HookID, nCode, wParam, lParam);
   end;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 HookID := SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId());
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 if HookID <> 0 then
   UnHookWindowsHookEx(HookID);
end;


чего нехватает??При компоновке программы Delphi говорит об ошибке:  Undeclared identifier 'HookID'


XRMiPO   (2008-04-03 23:44:00) [1]

все, спасибо, невнимательно смотрел, теперь разобрался, все работает)


Сергей М.   (2008-04-03 18:22:00) [2]

Можно.

HookID - это идентификатор.
Объявлен он у тебя черт-те где (ты не сподобился сказать где конкретно, видимо мы гадать тут должны), но только не там, где его "видит" компилятор при компиляции строчек текста, в которых происходит обращение к этому идентификатору, а именно

HookID:= SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId());

if HookID<> 0 then
  UnHookWindowsHookEx( HookID);


XRMiPO   (2008-04-03 18:12:00) [3]

а можно подробнее объяснить?


Сергей М.   (2008-04-03 18:08:00) [4]


> чего нехватает?


Не хватает знаний Паскаля в части понимания области видимости идентификаторов.


Наверх

Титульная страница Поиск, карта сайта Написать письмо