- - * - WhiteUnicorn - * - -




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >


Frequently Asked Questions

Trapping non client areas

Question:

How can I trap messages in the non client areas of my form, such as the title bar?

Answer:

Create a message handler for one of the variety of WM_NC
(non client) messages available to trap. (search the Windows API help
file for WM_NC). This example shows how to track mouse movement in all
of the non client areas of the form.

Example:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
     procedure WMNCMOUSEMOVE(var Message: TMessage);
       message WM_NCMOUSEMOVE;
    { Private declarations }
  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.



* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >



- - * - Anastasija aka WhiteUnicorn - * - - LJLiveJournal
PFPhotoFile