13 Feb 16 00:50, you wrote to All:
jl> Here's some code. The problem is that I have to press the down arrow key
jl> twice before it executes the "bot_bar" procedure. If anyone could help, or
jl> take a look at it, i'd appreciate it.
some parts are missing for others to really be able to compile and test it...
what you should do is to simplify it into a standalone program and then work it
out using general items to replace things like the ans files and thisuer.name
and such... the following seems to work fine for me after attempting to trace
your logic flow...
==== Begin "readkey_test.pas" ====
Program readkey_test;
Uses crt;
Var
ch1 : char;
ch2 : char;
Procedure show;
Begin
writeln(' in show');
End;
Procedure bot_bar;
Begin
writeln(' in bot_bar - display show? enter=no');
ch2:=readkey;
if ch2=#13 then begin
writeln(' readkey=enter - exiting bot_bar');
exit;
end;
show;
End;
Procedure top_bar;
Begin
writeln(' in top_bar');
End;
Begin
writeln('press uparr, dnarr or enter');
Repeat
writeln('in repeat block waiting on readkey');
ch1:=ReadKey;
case ch1 of
#0 : begin
writeln('readkey=nul - reading next key');
ch1:=ReadKey;
case ch1 of
#72 : begin
writeln(' readkey=uparr');
top_bar;
end;
#80 : begin
writeln(' readkey=dnarr');
bot_bar;
end;
end; //case readkey
end; //begin #0
end; //case readkey
until ch1=#13;
writeln('readkey=enter - exiting program');
end.
==== End "readkey_test.pas" ====
remember to keep it simple and straightforward...
)\/(ark
Always Mount a Scratch Monkey
... If it's any good at all they will soon discontinue it.
---
* Origin: (1:3634/12.73)
|