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

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

Системная горячая клавиша [D5, WinXP]


Batus ©   (2004-12-30 20:14:00) 

Как сделать так, чтобы при нажатии Alt+F4 форма не закрывалась, а
выполнялось что-то другое, вроде Show message.


R   (2004-12-31 07:21:00) [1]

procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;

-------------------

implementation

{$R *.DFM}

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
If Message.CmdType  and $FFF0 = SC_CLOSE  Then
 ShowMessage('Фигушки!') Else
  inherited
end;


begin...end   (2004-12-30 20:43:00) [2]

> [2] Batus   (30.12.04 20:36)

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 if (Shift = [ssAlt]) and (Key = VK_F4) then
 begin
   ShowMessage('Фигушки!');
   Key := 0
 end
end.


Batus   (2004-12-30 20:41:00) [3]

Спасибо! Вы очень помогли


begin...end   (2004-12-30 20:40:00) [4]

> [2] Batus   (30.12.04 20:36)

Key := 0


Batus   (2004-12-30 20:36:00) [5]

А как этот параметр Обнулять, то?


begin...end   (2004-12-30 20:34:00) [6]

> Batus   (30.12.04 20:14)

Обрабатывайте OnCloseQuery. Правда, помещённый в этот обработчик код выполнится и в том случае, если нажать крестик для закрытия окна.

Если интересует именно Alt-F4, можно обрабатывать OnKeyDown (чтобы форма не закрылась, нужно обнулять там параметр Key). Свойство KeyPreview формы следует установить в True.


Наверх

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