Вниз
Скачать: CL | DM;

перехват закрытия окна   Найти похожие ветки 

← →
Vazelin   (2006-08-06 19:57) [0]

Привет всем!
Как можно перехватить нажатие кнопки Х на форме?


← →
Rial ©   (2006-08-06 20:10) [1]

Событие
OnCloseQuery


← →
DprYg ©   (2006-08-06 20:14) [2]

А если имеется в виду после нажатия не закрывать форму, а делать еще что-то, то так:
Объявление
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
Реализация
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
 if Msg.CmdType = SC_CLOSE then ... else inherited;
end;


← →
Zeqfreed ©   (2006-08-06 20:21) [3]

> Как можно перехватить нажатие кнопки Х на форме?


type
 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   procedure WMClose(var Msg : TWMClose); message WM_CLOSE;
   procedure WMNCLButtonDown(var Msg : TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
 end;

. . .

procedure TForm1.WMClose(var Msg: TWMClose);
begin
 if (Tag = 1) then ShowMessage("OMG!!! You hit the close button!");
 inherited;
end;

procedure TForm1.WMNCLButtonDown(var Msg: TWMNCLButtonDown);
begin
 if (Msg.HitTest = HTCLOSE) then
  Tag := 1
 else
  Tag := 0;

 inherited;
end;


← →
Юрий Зотов ©   (2006-08-06 21:12) [4]

1. if Msg.CmdType and $FFF0 = SC_CLOSE...
2. А зачем вообще все это? Событие OnClose уже отменили?


← →
Ketmar ©   (2006-08-07 10:49) [5]

> [4] Юрий Зотов ©   (06.08.06 21:12)

а так, видимо, интересней.


← →
Desdechado ©   (2006-08-07 11:47) [6]

> А если имеется в виду после нажатия не закрывать форму,
> а делать еще что-то
А разве в FormClose нельзя прописать Action:=caNone ?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
15-1156099071
AntiUser
2006-08-20 22:37
2006.09.17
К знатокам Oracle.


8-1141571691
Sco
2006-03-05 18:14
2006.09.17
Взрыв


3-1152093224
term1t
2006-07-05 13:53
2006.09.17
Oracle to FoxPro


2-1156457787
simona4
2006-08-25 02:16
2006.09.17
memo1.lines.add()


2-1156510613
Der Nechk@ssoff
2006-08-25 16:56
2006.09.17
Определить тип файла




   Наверх