Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

События сворачивания окна


AIK ©   (2007-11-23 16:51:00) 

В правом углу окна формы есть такой крестик квадратик и нижняя чёрточка
Как сделать события когда нажимаю на черточку?
Заранее спасибо.


Igor Zorkov   (2007-11-24 09:44:00) [1]

procedure TForm1.WMSYSCOMMAND(var message: TMessage);
begin
 if message.wParam = SC_MAXIMIZE then
 begin
   WindowState:= wsMaximized;
 end else
 if message.wParam = SC_MINIMIZE then
 begin
   WindowState:= wsMinimized;
 end else
 if message.wParam = SC_CLOSE then
 begin
   ShowMessage('FUCK');
 end else
   inherited;
end;


Igor Zorkov   (2007-11-24 09:37:00) [2]


> AIK   (24.11.07 09:27) [11]


Так надо давать возможность обрабатывать другие сообщения


procedure TForm1.WMSYSCOMMAND(var message: TMessage);
begin
Case message.wParam  of

SC_MINIMIZE: Application.Minimize;

SC_CLOSE: Close;

SC_MAXIMIZE: Form1.WindowState:=wsMaximized;

SC_RESTORE: Form1.WindowState:=wsNormal;

end;
  inherited;
end;


AIK   (2007-11-24 09:27:00) [3]

Вот полный код блин неперемещаеться!!!

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   CheckBox1: TCheckBox;
protected
  procedure WMSYSCOMMAND(var message: TMessage); message WM_SYSCOMMAND;

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.WMSYSCOMMAND(var message: TMessage);
begin
Case message.wParam  of

SC_MINIMIZE: Application.Minimize;

SC_CLOSE: Close;

SC_MAXIMIZE: Form1.WindowState:=wsMaximized;

SC_RESTORE: Form1.WindowState:=wsNormal;

end;
end;
end.


Igor Zorkov   (2007-11-24 09:22:00) [4]


> AIK   (24.11.07 08:53) [9]


У меня перемещаеться


AIK   (2007-11-24 08:53:00) [5]

Эт когда захватываешь верхнею часть формы курсором и перемешаешь её


Igor Zorkov   (2007-11-24 08:49:00) [6]


> AIK   (24.11.07 08:38) [7]



> Нет чего ни будь по проще?


Куда уж проще, что не понятно?


> К тому же и форма не перемешается


Непонял


AIK   (2007-11-24 08:38:00) [7]


> Igor Zorkov ©   (23.11.07 21:44) [6]

Неплохо но приходится доделывать чтобы форму можно было закрыть (это когда на крестик SC_CLOSE) и разворачивать на весь экран (а это когда на квадратик SC_MAXIMIZE)
Нет чего ни будь по проще?
К тому же и форма не перемешается


Igor Zorkov   (2007-11-23 21:44:00) [8]

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   CheckBox1: TCheckBox;
 protected
   procedure WMSYSCOMMAND(var message: TMessage); message WM_SYSCOMMAND;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMSYSCOMMAND(var message: TMessage);
begin
 if (message.wParam = SC_MINIMIZE) then
 begin
   if CheckBox1.Checked then
     Application.Minimize;
 end else
   inherited;
end;

end.


clickmaker   (2007-11-23 18:08:00) [9]


> [4] @!!ex ©   (23.11.07 17:36)

а, точно!
наверно сбило с толку "такой крестик" )


@!!ex   (2007-11-23 17:36:00) [10]

> [3] clickmaker ©   (23.11.07 17:24)

Не. Черточка - это minimize


clickmaker   (2007-11-23 17:24:00) [11]

OnClose
OnCloseQuery


АИК   (2007-11-23 17:16:00) [12]

???????????


Рамиль   (2007-11-23 16:55:00) [13]

Обработать WM_SYSCOMMAND


Наверх

Титульная страница Поиск, карта сайта Написать письмо