![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
События сворачивания окна
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