Readkey без ожидания - Free Pascal

Формулировка задачи:

Бодрого времени суток, господа. Возникла такая ситуация. Вот (сильно упрощенный) код: есть такое меню в процедуре MyMenu:
menu[1]:=' Начать снова ';
menu[2]:=' Загрузить данные ';
menu[3]:=' Сохранить данные ';
menu[4]:=' Сохранить и выйти  ';
menu[5]:=' Просто выйти ';
и нужно, чтобы его можно было вызывать по необходимости с помощью Esc. Я это сделал это так:
writeln('Для вызова меню нажмите Esc');
ch:=readkey;        // считываем нажатие Esc
if ch=#27 then      // если нажали
   MyMenu;               // вызываем процедуру с меню
writeln('Введите данные');
writeln('--------------------------------');
write('Расход топлива, кг       : ');  readln(dm);
write('Время маневра, сек       : ');  readln(dt);
И все бы хорошо, но программа стоит на одном месте и ждет нажатия на какую-нибудь клавишу. Вопрос - можно ли это реализовать как-то, чтобы не было этого ожидания. Вполне возможно я думаю совершенно не в ту сторону и это реализуется абсолютно по-другому.

Код к задаче: «Readkey без ожидания - Free Pascal»

textual
writeln('Для вызова меню нажмите Esc');
ch:=readkey;        // считываем нажатие Esc
if ch=#27 then      // если нажали
   MyMenu;               // вызываем процедуру с меню
{И вот тут программа тупо ждет нажатия какой-либо клавиши. Затем продолжает:}
writeln('Введите данные');
writeln('--------------------------------');
write('Расход топлива, кг       : ');  readln(dm);
write('Время маневра, сек       : ');  readln(dt);

8   голосов, оценка 4.125 из 5


СОХРАНИТЬ ССЫЛКУ