回 帖 发 新 帖 刷新版面

主题:選單問題,跪求高手解答

如果我想在選單中加用上下的功能
就好像 MENU
      --1--
        2
        3
之後我在按下時會變為
      MENU
        1
      --2--
        3
大約是怎弄..有大大會嗎?
我只是知道用CASE LOOP之後CHR(0)的情況再用CHR(72)代表上,CHR(80)代表下
其實我把WINDOW分成了兩邊
右邊的是選單..選了後會在左邊出那個選擇的PROCEDURE..
有大大可以大約說說嗎..萬分感激!!

回复列表 (共6个回复)

沙发

你编的是什么程序啊?

板凳

uses crt;
const n=3;{n 限定菜单项目数}
var i:integer;{i 记录指向的数}

begin
clrscr;
window(50,2,70,20);
writeln('MENU');
for i:=1 to n do
if i=1 then writeln('--1--')
else writeln('  ',i);
i:=1;
repeat
 if keypressed then
 case readkey of
 #72:begin
     gotoxy(1,i+1);
     writeln('  ',i,'  ');
     if i<>1 then begin gotoxy(1,i); writeln('--',i-1,'--'); i:=i-1; end
     else begin gotoxy(1,n+1); writeln('--',n,'--'); i:=n; end;
     end;
 #80:begin
     gotoxy(1,i+1);
     writeln('  ',i,'  ');
     if i<>n then begin gotoxy(1,i+2); writeln('--',i+1,'--'); i:=i+1; end
     else begin gotoxy(1,2); writeln('--',1,'--'); i:=1; end;
     end;
 end;
until readkey=#27;
end.

3 楼

esc #27
上 #72
下 #80
左 #75
右 #77
空格 #32
回车 #10

'#'相当于chr( )

4 楼

是一個FOR OMR的程


謝謝樓上的解答..我以你的解答再出發點..已經成功做出MENU..只是我的是用GRAPH MODE..
再想問問..如果我在右邊弄了一個MENU就如樓上的..可以用上下來選..
那我左邊弄出來的MENU(<~右邊選了左邊出的MENU)..可以再用上下來選嗎?..感覺都設定不到
我現在左邊的MENU按上下都不會動..反而是直接跳到出結果..沒得按ENTER進入..

5 楼

把你的程序段拿出来看看

6 楼

我自己设计了一段程序,不知道和你想的是不是一样。

var i{控制右菜单光标},j{控制左菜单光标},condition{表示处理状态,0代表处理右菜单,1~……处理左菜单}:integer;
……
打印你的右菜单
repeat
 if keypressed then
 case readkey of
 #72:if condition=0 then begin 移动右菜单的光标; 处理i; end
     else begin 移动左菜单的光标; 处理j; end;
 #80:if condition=0 then begin 移动右菜单的光标; 处理i; end
     else begin 移动左菜单的光标; 处理j; end;
 #10:if condition=0 then begin condition:=i; j:=1; 打印左菜单; end
     else 运行左菜单的项目; end;
 #27:if condition=0 then exit
     else begin condition:=0; 用背景色覆盖左菜单; end;
 end;
until not(keypressed);

我来回复

您尚未登录,请登录后再回复。点此登录或注册