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










Главная / DELPHI / 38 советов по Delphi / Как сделать возможным передвижение формы если пользователь щелкнул в форму вне пространства заголовка? Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

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

В следующем примере показано как можно передвигать форму если пользователь "захватил" 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.

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz