![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день, подскажите пожалуйста, можно ли сделать закрытие активной формы по нажатию на кнопку клавиатуры "Esc". Если возможно, поделитесь кодом пожалуйста.
|
|
#2
|
||||
|
||||
|
Да, можно.
Событие OnKeyDown. |
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
DOR (25.03.2013)
| ||
|
#3
|
|||
|
|||
|
Добавлю:
1. Если форма модальная и на ней есть кнопка, которая закрывает форму, то можно у этой кнопка выставить свойство Cancel. 2. Если форма не модальная, то тут есть варианты. Первый, как уже сказали, OnKEyDown (можно просто OnKeyPress, код #27), толко желательно еше выставить форме свойство KeyPreview. Можно сделать Action с горячей клавишей Esc. |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
DOR (25.03.2013)
| ||
|
#4
|
|||
|
|||
|
а какой Key у Esc?
з.ы. написал позже предыдущего сообщения форма модальная, написал так Код:
procedure Tf_Otdel.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then
begin
Close;
end;
end;Последний раз редактировалось M.A.D.M.A.N., 25.03.2013 в 20:26. |
|
#5
|
||||
|
||||
|
VK_ESCAPE
Это не чат, блин!!! Хватит плодить сообщения, есть кнопка "Правка". |
|
#6
|
||||
|
||||
|
Цитата:
Код:
procedure TForm1.FormCreate(Sender: TObject); begin Form1.KeyPreview:= true; end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = VK_ESCAPE then Close; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin AnimateWindow(Handle, 500, AW_HIDE or AW_BLEND); end; |