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