Как свернуть форму на экране

Вот полный код, демонстрирующий этот трюк:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
OldHeight: integer;
procedure ZipUpForm;
public
{ Public declarations }
procedure WndProc(var Msg: TMessage); override;
end;
var
Form1: TForm1;
const
iZipHeight: integer = 38; // не менее 38 для Windows XP
implementation
{$R *.dfm}
{ Перехват сообщения WM_NCLBUTTONDBLCLK }
procedure TForm1.WndProc(var Msg: TMessage);
begin
if Msg.Msg = WM_NCLBUTTONDBLCLK then
begin
if Msg.WParam = htCaption then
ZipUpForm;
end
else
inherited WndProc(Msg);
end;
{ Процедура сворачивания и разворачивания формы }
procedure TForm1.ZipUpForm;
begin
if Height = iZipHeight then
Height:= OldHeight
else
begin
OldHeight:= Height;
Height:= iZipHeight;
end;
end;
end.
Вы можете перехватывать щелчки мыши и в другой части формы. Вот значения wParam, которые могут быть использованы:
- HTBORDER - На границе окна, которое не имеет границы изменения размеров
- HTBOTTOM - На нижней горизонтальной границе окна
- HTBOTTOMLEFT - В левом нижнем углу границы окна
- HTBOTTOMRIGHT - В правом нижнем углу окна
- HTCAPTION - В заголовке окна
- HTCLIENT - В клиентской части окна
- HTERROR - На фоне экрана или на границе между окнами (то же самое, что и HTNOWHERE, за исключением того, что звуковой сигнал будет воспроизведен при проверке нажатия HTERROR
- HTGROWBOX - В части изменения размера (то же самое, что и HTSIZE
- HTHSCROLL - На горизонтальной полосе прокрутки
- HTLEFT - На левой границе окна
- HTMENU - В меню
- HTNOWHERE - На фоне экрана или границе между окнами
- HTREDUCE - На кнопке "Свернуть"
- HTRIGHT - На правой границе окна
- HTSIZE - В области изменения размера (то же самое, что и HTGROWBOX
- HTSYSMENU - В системном меню или кнопке "Закрыть" дочернего окна
- HTTOP - На верхней горизонтальной границе окна
- HTTOPLEFT - В верхнем левом углу границы окна
- HTTOPRIGHT - В правом верхнем углу границы окна
- HTTRANSPARENT - В окне, в настоящее время закрытом другим окном
- HTVSCROLL - На вертикальной полосе прокрутки
- HTZOOM - На кнопке "Развернуть/Восстановить"
Комментарии