DELPHI FAQ: Как перехватить события в неклиентской области формы?


Как перехватить события в неклиентской области формы?
Previous  Home  Next




Создайте обработчик одного из сообщений WM_NC (non client - не клиентских) (посмотрите
WM_NC в Windows API help). Пример показывает как перехватить вижение мыши во всей
неклиенстской области окна (рамка и заголовок).

Пример:

unit
 Unit1;

interface


uses

   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class
(TForm)
private

   {Private declarations}

   procedure
 WMNCMOUSEMOVE(var Message: TMessage);
   message
 WM_NCMOUSEMOVE;
public

   {Public declarations}

end
;

var

   Form1: TForm1;

implementation


{$R *.DFM}


procedure
 TForm1.WMNCMOUSEMOVE(var Message: TMessage);
var

   s : string
;
begin

   case
 Message.wParam of
      HTERROR:    
         s:= 'HTERROR'
;
      HTTRANSPARENT:
         s:= 'HTTRANSPARENT'
;
      HTNOWHERE:   
         s:= 'HTNOWHERE'
;
      HTCLIENT:
         s:= 'HTCLIENT'
;
      HTCAPTION:
         s:= 'HTCAPTION'
;
      HTSYSMENU:
         s:= 'HTSYSMENU'
;
      HTSIZE:
         s:= 'HTSIZE'
;
      HTMENU:
         s:= 'HTMENU'
;
      HTHSCROLL:
         s:= 'HTHSCROLL'
;
      HTVSCROLL:
         s:= 'HTVSCROLL'
;
      HTMINBUTTON:
         s:= 'HTMINBUTTON'
;
      HTMAXBUTTON:
         s:= 'HTMAXBUTTON'
;
      HTLEFT:
         s:= 'HTLEFT'
;
      HTRIGHT:
         s:= 'HTRIGHT'
;
      HTTOP:
         s := 'HTTOP'
;
      HTTOPLEFT:
         s:= 'HTTOPLEFT'
;
      HTTOPRIGHT:
         s:= 'HTTOPRIGHT'
;
      HTBOTTOM:
         s:= 'HTBOTTOM'
;
      HTBOTTOMLEFT:
         s:= 'HTBOTTOMLEFT'
;
      HTBOTTOMRIGHT:
         s:= 'HTBOTTOMRIGHT'
;
      HTBORDER:
         s:= 'HTBORDER'
;
      HTOBJECT:
         s:= 'HTOBJECT'
;
      HTCLOSE:
         s:= 'HTCLOSE'
;
      HTHELP:
         s:= 'HTHELP'
;
      else
 s:= '';
   end
;
   Form1.Caption := s;
   Message
.Result := 0;
end
;

end
.

Взято из
DELPHI VCL FAQ
Перевод с английского   
Подборку, перевод и адаптацию материала подготовил Aziz
(JINX)
специально для Королевства Дельфи





DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100