Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.03.2013, 19:54
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию Закрытие активной формы по нажатию на кнопку клавиатуры

Добрый день, подскажите пожалуйста, можно ли сделать закрытие активной формы по нажатию на кнопку клавиатуры "Esc". Если возможно, поделитесь кодом пожалуйста.
Ответить с цитированием
  #2  
Старый 25.03.2013, 20:02
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Да, можно.
Событие OnKeyDown.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
DOR (25.03.2013)
  #3  
Старый 25.03.2013, 20:05
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Добавлю:
1. Если форма модальная и на ней есть кнопка, которая закрывает форму, то можно у этой кнопка выставить свойство Cancel.
2. Если форма не модальная, то тут есть варианты. Первый, как уже сказали, OnKEyDown (можно просто OnKeyPress, код #27), толко желательно еше выставить форме свойство KeyPreview. Можно сделать Action с горячей клавишей Esc.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
DOR (25.03.2013)
  #4  
Старый 25.03.2013, 20:08
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

а какой Key у Esc?
з.ы. написал позже предыдущего сообщения

форма модальная, написал так
Код:
procedure Tf_Otdel.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then
  begin
    Close;
  end;
end;
выставил KeyPreview в true. Работает.

Последний раз редактировалось M.A.D.M.A.N., 25.03.2013 в 20:26.
Ответить с цитированием
  #5  
Старый 25.03.2013, 20:26
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

VK_ESCAPE

Это не чат, блин!!! Хватит плодить сообщения, есть кнопка "Правка".
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 25.03.2013, 22:35
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от DOR
...можно ли сделать закрытие активной формы по нажатию на кнопку клавиатуры "Esc"...
А так это можно сделать красиво
Код:
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;
©Drkb v.3.02(2009)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:36.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025