На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Пользовательский интерфейс / Как перехватить события в неклиентской области формы, в заголовке окна, например? Сделать домашней страницей Добавить в избранное Написать писмо

Как перехватить события в неклиентской области формы, в заголовке окна, например?


Создайте обработчик одного из сообщений 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.



Источник: Дельфи. Вокруг да около.


Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz