Topic: перехватить [esc]

как перехватить нажатие [ESC] ?

2 (edited by sparrow 2021-08-16 14:11:19)

Re: перехватить [esc]

А смотря где и для чего

Для Edit через OnKeyPress или OnKeyDown пример здесь

http://myvisualdatabase.com/forum/viewtopic.php?id=1879

Re: перехватить [esc]

sparrow wrote:

А смотря где и для чего

Для Edit через OnKeyPress или OnKeyDown пример здесь

http://myvisualdatabase.com/forum/viewtopic.php?id=1879

ясно значит я все правильно делал, спасибо..
почему-то программа говорит что #27 и все остальные при использовании # ( несовместимый тип)

Re: перехватить [esc]

нашел почему не принимал тип

var Key: Char

но все равно нажатие не перехватывает

Re: перехватить [esc]

sibprogsistem wrote:

как перехватить нажатие [ESC] ?

Можно попробовать незаметно подкрасться и "перехватить".
Вопрос - где..? В главном окне программы? В модальной форме? Надо как-то правильней вопрос ставить. Подкреплять подробностями, готовым примером скрипта, который не работает, скриншотами...

Re: перехватить [esc]

vovka3003 wrote:
sibprogsistem wrote:

как перехватить нажатие [ESC] ?

Можно попробовать незаметно подкрасться и "перехватить".
Вопрос - где..? В главном окне программы? В модальной форме? Надо как-то правильней вопрос ставить. Подкреплять подробностями, готовым примером скрипта, который не работает, скриншотами...

В модальной форме

Re: перехватить [esc]

Отлично. А сделать что требуется? (Про "перехватить" слышали уже)

Re: перехватить [esc]

vovka3003 wrote:

Отлично. А сделать что требуется? (Про "перехватить" слышали уже)

закрыть модальную форму...

Re: перехватить [esc]

Великолепно...

sibprogsistem wrote:

как перехватить нажатие [ESC]? Мне нужно по этой клавише закрывать активную модальную форму.

Держи:

procedure FormKeyDown(Sender: TObject; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
 if Key=27 then
 begin
     ShowMessage('Была нажата ESC в Форме');
     TForm(Sender).Close;
 end;
end;

begin
  ModalFm.KeyPreview := true;
  ModalFm.OnKeyDown := @FormKeyDown;
end.

Re: перехватить [esc]

vovka3003 wrote:

Великолепно...

sibprogsistem wrote:

как перехватить нажатие [ESC]? Мне нужно по этой клавише закрывать активную модальную форму.

Держи:

procedure FormKeyDown(Sender: TObject; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
 if Key=27 then
 begin
     ShowMessage('Была нажата ESC в Форме');
     TForm(Sender).Close;
 end;
end;

begin
  ModalFm.KeyPreview := true;
  ModalFm.OnKeyDown := @FormKeyDown;
end.

нет, не работает
другие клавиши перехватывает но не ESC

Re: перехватить [esc]

в новом проекте перехватывает
буду искать причину

Re: перехватить [esc]

нет, не работает

работает.

в новом проекте перехватывает

ответ очевиден - косяк в старом проекте.

Re: перехватить [esc]

sibprogsistem wrote:

в новом проекте перехватывает
буду искать причину

Видимо, на форме есть кнопка со свойством Cancel = True. Измени его на Cancel = False и все заработает ))))

Визуальное программирование: блог и телеграм-канал.