Останов программы до нажатия клавиши. TP7

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
pitby
Сообщения: 3
Зарегистрирован: 10 окт 2006, 17:51

Недавно пересел с изученного basic'a на неизведанный tp 7.1. Мне нужно, чтобы прога в процессе выполнения тормознула и подождала, пока я нажму эникэй, и потом работала дальше. В basic'e были команды stop,pause,system. Есть ли такие команды в tp?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

basic - это не тот, что VBA? а тот что с циферками в каждой строчке? ))
ностальгия :-)

по вопросу:

Код: Выделить всё

begin
	Write('Press any key to continue...');
	Readln;
	Write('Thank you!');
end.
если будет ждать нажатия Enter, вместо Readln можно попробовать readkey

P.S. было бы не плохо, если бы тема сообщения отображала суть вопроса
pitby
Сообщения: 3
Зарегистрирован: 10 окт 2006, 17:51

Неа... QBasic. Но надеюсь, что ностальгию не обломал)
За код сенкс, про ридкей я знаю, но он играет немного иную роль. Значит, буду юзать кидлн без параметров.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

вспоминается конструкция

Код: Выделить всё

repeat

until KeyPressed;
это не с ТП? склероз...
Изображение
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

[quote="Игорь Акопян"]вспоминается конструкция

Код: Выделить всё

repeat
until KeyPressed][/quote]
Тогда уж (чтобы не оставлять в буфере клавиатуры сделанных нажатий, которых может быть более одного, если нажата функциональная клавиша):
[code]while KeyPressed do
  ch := ReadKey;
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

BBB, это просто всплыло в памяти, типа "делать чего-то пока не топнули кнопку". Акцент собсно на функции KeyPressed был
pitby
Сообщения: 3
Зарегистрирован: 10 окт 2006, 17:51

Извиняюс, походу возникла ещё одна проблемка. Как сделать экзэшник из откомпиленого кода?
YurikGL
Сообщения: 142
Зарегистрирован: 16 фев 2005, 21:54
Откуда: Уфа
Контактная информация:

BBB писал(а):
Игорь Акопян писал(а):вспоминается конструкция

Код: Выделить всё

repeat
until KeyPressed][/quote]
Тогда уж (чтобы не оставлять в буфере клавиатуры сделанных нажатий, которых может быть более одного, если нажата функциональная клавиша):
[code]while KeyPressed do
  ch := ReadKey;
Вспоминается конструкция

Код: Выделить всё

  ch:=ReadKey;
  if ch=#00 then ch:=ReadKey;
Если просто ch := ReadKey и нажата клавиша, возвращающая два байта, то в коммандную строку может второй байт возвратиться и отобразиться в ней.
Как сделать экзэшник из откомпиленого кода?
[/quote]
Ты его во что компилишь?
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

pitby, только не надо делать топик обо всём, ок?
Даже самый дурацкий замысел можно воплотить мастерски
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

[quote="YurikGL"][quote="BBB"][quote="Игорь Акопян"]вспоминается конструкция

Код: Выделить всё

repeat
until KeyPressed][/quote]
Тогда уж (чтобы не оставлять в буфере клавиатуры сделанных нажатий, которых может быть более одного, если нажата функциональная клавиша):
[code]while KeyPressed do
  ch := ReadKey;
[/quote]

Вспоминается конструкция

Код: Выделить всё

  ch:=ReadKey;
  if ch=#00 then ch:=ReadKey;
Если просто ch := ReadKey и нажата клавиша, возвращающая два байта, то в коммандную строку может второй байт возвратиться и отобразиться в ней.[/quote]
Ну да, тоже вариант.
Кстати, до меня дошло, что мой пример был в корне не верный :) Там нет никакого ожидания нажатия. Там не получится никакого ожидания, ведь KeyPressed "сходу" вернет FALSE, и цикл сразу же завершится.
Правильнее, пожалуй, так:

Код: Выделить всё

repeat
  ch:= ReadKey;
until (NOT KeyPressed);
То есть, очень похоже на то, как было в примере у Игорь Акопян.
Ответить