Как закрыть форму кнопкой Escape в Delphi

Закрываем форму кнопкой Esc в Delphi

Существует ряд вариантов реализации такого поведения. Чаще всего встречается вот такой метод:

1) Свойство KeyPreview формы выставляется в true, создается обработчик событий OnKeyPress на форме и прописывается следующий код:

Данный код, вполне рабочий, но не совсем корректен и убедиться в этом можно достаточно просто. Помещаем ко всему прочему на форму, скажем MaskEdit, запускаем наше приложение, нажимаем клавишу Esc и наша форма не закроется должным образом.

Интересное решение проблемы путем обработки диалоговых клавиш сообщением CMDialogKeyCMDialogKey — специально предназначен для подобных мероприятий:

1) Создаем новый проект;

2) В редакторе кода записываем следующую процедуру:

3) В разделе private прописываем две строчки:

4) Помещаем на форму любые компоненты, связываем их как угодно, запускаем проект, нажимаем на Esc.