Выход из програмы при нажатии определенной клавиши.

nazho

Надо сделать так, что бы при нажатии кнопки "1", потом "Enter" осуществлялся выход из программы. Спасибо!
11 ответов

nazho

Можно решить проблему так:
uses crt;
key1,key2:char;
begin
  key1:=readkey;
  key2:=readkey;
if (key1='1') and (key2=#13) then halt;
end.
В разных ситуациях - по разному. Поэтому это один из вариантов.


nazho

Metallnote, не подойдет, т.к. мне нужно это записать в процедуру, после которой в теле идет ещё одна. Нужно 2ю оборвать, и выйти из программы в код.


nazho

Ну тогда вместо halt пишем exit.


nazho

uses Crt;
procedure NAVIGAT;
var i,j,z:integer;
begin
writeln('бла');
writeln('бла-бла');
writeln('бла-бла-бла');
readln(z);
case z of 
1: begin
Вот тут надо оформить выход.
end;
2: begin
...
end;
end else writeln('Error');
end;
 
procedure MINI;
begin
writeln('bla');
writeln('bla');
readln(z);
case z of 
1: begin
NAVIGATION;
end;
2: begin
...
end;
end; 
BEGIN
Clrscr;
NAVIGATION;
MINI;
end.
Твой код работает не так, как хотелось бы.


nazho

тогда вместо exit пиши break


nazho

Metallnote, error 109


nazho

По сути всё и от оператора exit должно работать. Не понимаю.


nazho

Суть такая: клацаю 3, потом Enter, Enter, Enter, Enter, выбивается процедура MINI.


nazho

У меня всё с exit работает. Break вообще здесь неуместен. Ступил.Вот код:
uses Crt;
procedure NAVIGATOR;
var i,j,z:integer;
key1,key2:char;
begin
writeln('бла');
writeln('бла-бла');
writeln('бла-бла-бла');
readln(z);
case z of
1: begin
     key1:=readkey;
     key2:=readkey;
       if (key1='1') and (key2=#13) then exit;
   end;
end;
end;
 
procedure mini;
begin
  writeln('hey');
end;
BEGIN
Clrscr;
NAVIGATOR;
MINI;
readln;
end.


nazho

Надо, что бы процедуру mini вообще не показывало, а сразу после Ентер закрывалось.


nazho

program zz;
Uses Crt;
var keypr:char;
begin
writeln('Press 1');
keypr:=readkey;
 if keypr='1' then
  begin
   writeln('Press Enter');
   keypr:=readkey;
    if keypr=#13 then
     begin
      exit;
     end;
  end;
readln;
end.