Delphi 7. Возник вопрос. Я пишу программу, где возникает сразу несколько MessageDlg. Ну...

0 голосов
18 просмотров

Delphi 7. Возник вопрос. Я пишу программу, где возникает сразу несколько MessageDlg. Ну что-то типа вируса, но с благородными целями(не подумайте плохо). Разумеется надо как-то выйти/закрыть программу. Я например делал onKeyDown на форме( if key=40 then close). Так же делал вместо close использовал halt. не получалось т.к. messageDlg как будто берет управление на себя.

Вопрос: как осуществить выход из программы посредством нажатия клавиши? Идеально было бы конечно реагировать на комбинацию клавиш.


Информатика (1.7k баллов) | 18 просмотров
Дан 1 ответ
0 голосов

Насколько я знаю в любой сборке Delphi есть компонент "Application Events", у которго есть соответствующее событие "OnShortCut", так вот разместите на форме данный компонент (в 7 версии Delphi он должен лежать во вкладке "Additional") и запишите в его свостве OnShortCut следующее:

procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey;
var Handled: Boolean);
begin
If Msg.CharCode = Ord('G') then
Form1.Close;
end;

Ord('G') - функция возвращающая код символа, в её параметр записывайте непосредственно тот символ, по нажатию которого должна прекратить работу ваша программа.

(489 баллов)