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

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

Закрытие формы при нажатии ESC


ser35 ©   (2005-03-14 10:52:00) 

Хочу, чтобы при нажатии клавиши закрылась форма. Сделал так:
procedure TForm13.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#27 then Form13.Close;  //Если эскейп, то закрываю
end;
Не закрывается. Подскажите ошибку


Gero   (2005-03-14 14:14:00) [1]


> автор так написал: "Хочу"

А автору намекнули, что, скорее всего, у него неверно реализован пользовательский интерфейс.


XP   (2005-03-14 13:26:00) [2]

Не всякая форма закрывается по Esc.

В контексте данной ветки - закрывается по Esc, потому что автор так написал: "Хочу".
И о кнопках не сказал ничего. Ну совершенно ничего.


Чапаев   (2005-03-14 13:17:00) [3]

> P.P.S. Повторюсь: не всякая форма имеет кнопки (TButton и иже с ними).
Не всякая форма закрывается по Esc.


XP   (2005-03-14 12:33:00) [4]

Я пытался вспомнить хоть одну форму без кнопок - не смог.

Это как-то называется. Только вот как? Не могу вспомнить.
А по поводу двух кнопок - пытался найти в окне Internet Explorer, окнах документов Word, Excel, в Проводнике, опять же, кнопки "Отмена" и "Нормальное завершение" - не нашел.
Есть только "Закрыть" в все том же правом верхнем углу, да еще "Закрыть" в меню, которое дублирует кнопку.
Может, в этих программах не предусмотрены действия или ввод?
Ну, тогда другое дело...

P.S. Дайте салфетку - очки протру, что ли?
P.P.S. Повторюсь: не всякая форма имеет кнопки (TButton и иже с ними).


Gero   (2005-03-14 12:21:00) [5]


> Я пытался вспомнить хоть одну форму без кнопок - не смог.

Debug Windows, например.
Да и форма может быть главной и закрываться при нажатии Esc.
Тогда, конечно, применяют другие методы, но все же.


Anatoly Podgoretsky   (2005-03-14 12:17:00) [6]

XP   (14.03.05 11:34) [8]
Странные у тебя формы от Microsoft и Borland, у меня с кнопками, там где ввод или какие действия не предусмотренны, там одна кнопка. Я пытался вспомнить хоть одну форму без кнопок - не смог.


TUser   (2005-03-14 12:04:00) [7]

ActionList


XP   (2005-03-14 11:34:00) [8]

...нормальная форма должна иметь две кнопки - Отмена и Нормально завершение.

Жаль только, что ни в Microsoft, ни в Borland этого не знают. А то обязательно разместили бы на каждую форму эти "две кнопки". Пока додумались только до "Закрыть" в верхнем правом углу формы.


ser35   (2005-03-14 11:19:00) [9]

Спасибо за советы!!!


Anatoly Podgoretsky   (2005-03-14 11:17:00) [10]

А не надо издеваться над пользователем.
Если нет, то добавить, нормальная форма должна иметь две кнопки - Отмена и Нормально завершение.


XP   (2005-03-14 11:09:00) [11]

Есть же соответсвующие свойства у кнопок, вот его надо и установить, а код выкинуть.

Не всякая форма имеет кнопки (TButton и иже с ними).


Anatoly Podgoretsky   (2005-03-14 11:05:00) [12]

Зачем?
Есть же соответсвующие свойства у кнопок, вот его надо и установить, а код выкинуть.


begin...end   (2005-03-14 10:58:00) [13]

procedure TMyForm.Form KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if key = VK_ESCAPE then Close
end


И не забудьте свойство KeyPreview формы установить в True.


wicked   (2005-03-14 10:58:00) [14]

procedure TForm13.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key=VK_ESCAPE then Close;  //Если эскейп, то закрываю
end;


Плохиш   (2005-03-14 10:57:00) [15]

Убрать Form13


Наверх

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