Страница 1 из 1

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

Добавлено: 10 окт 2006, 17:56
pitby
Недавно пересел с изученного basic'a на неизведанный tp 7.1. Мне нужно, чтобы прога в процессе выполнения тормознула и подождала, пока я нажму эникэй, и потом работала дальше. В basic'e были команды stop,pause,system. Есть ли такие команды в tp?

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

по вопросу:

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

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

P.S. было бы не плохо, если бы тема сообщения отображала суть вопроса

Добавлено: 10 окт 2006, 21:13
pitby
Неа... QBasic. Но надеюсь, что ностальгию не обломал)
За код сенкс, про ридкей я знаю, но он играет немного иную роль. Значит, буду юзать кидлн без параметров.

Добавлено: 11 окт 2006, 12:48
Игорь Акопян
вспоминается конструкция

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

repeat

until KeyPressed;
это не с ТП? склероз...

Добавлено: 11 окт 2006, 13:52
BBB
[quote="Игорь Акопян"]вспоминается конструкция

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

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

Добавлено: 11 окт 2006, 15:03
Игорь Акопян
BBB, это просто всплыло в памяти, типа "делать чего-то пока не топнули кнопку". Акцент собсно на функции KeyPressed был

Добавлено: 11 окт 2006, 20:33
pitby
Извиняюс, походу возникла ещё одна проблемка. Как сделать экзэшник из откомпиленого кода?

Добавлено: 11 окт 2006, 21:32
YurikGL
BBB писал(а):
Игорь Акопян писал(а):вспоминается конструкция

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

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

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

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

Добавлено: 11 окт 2006, 23:47
AiK
pitby, только не надо делать топик обо всём, ок?

Добавлено: 12 окт 2006, 09:24
BBB
[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);
То есть, очень похоже на то, как было в примере у Игорь Акопян.