Как сделать возможным передвижение формы, если пользователь щелкнул
в форму вне пространства заголовка?

В следующем примере показано как можно передвигать форму если пользователь
“захватил” Client-пространство. Наиболее простое решение – “обмануть” Windows
и Client-пространство выдать за заголовок окна.

unit DragMain;
interface

uses

  SysUtils, WinTypes, WinProcs,  Messages,

  Classes, Graphics, Controls, Forms, Dialogs, StdCrtls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure ButtonClick(Sender: TObject);
  private
    procedure WMNCHitTest(var M: TWMNCHitTest);
                 message wm_NCCHitTest;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1. WMNCHitTest(var M: TWMNCHitTest); 

begin
  inherited;
  if M.Result = htClient then
    M.Result := htCaption;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;

end.

Tags: , , , ,

Дата создания: Воскресенье, июня 8, 2008 - 13:35 и находится в категории Советы. Вы можете отслеживать ответы через RSS 2.0. Вы можете ответить.

Ответить

Вы должны быть в системе для комментирования.