主题:選單問題,跪求高手解答
紫玫瑰一號
[专家分:0] 发布于 2008-09-19 19:17:00
如果我想在選單中加用上下的功能
就好像 MENU
--1--
2
3
之後我在按下時會變為
MENU
1
--2--
3
大約是怎弄..有大大會嗎?
我只是知道用CASE LOOP之後CHR(0)的情況再用CHR(72)代表上,CHR(80)代表下
其實我把WINDOW分成了兩邊
右邊的是選單..選了後會在左邊出那個選擇的PROCEDURE..
有大大可以大約說說嗎..萬分感激!!
回复列表 (共6个回复)
沙发
angwuy [专家分:2280] 发布于 2008-09-20 07:39:00
你编的是什么程序啊?
板凳
@左思@ [专家分:110] 发布于 2008-09-20 16:30:00
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 楼
@左思@ [专家分:110] 发布于 2008-09-20 16:33:00
esc #27
上 #72
下 #80
左 #75
右 #77
空格 #32
回车 #10
'#'相当于chr( )
4 楼
紫玫瑰一號 [专家分:0] 发布于 2008-09-20 21:35:00
是一個FOR OMR的程
謝謝樓上的解答..我以你的解答再出發點..已經成功做出MENU..只是我的是用GRAPH MODE..
再想問問..如果我在右邊弄了一個MENU就如樓上的..可以用上下來選..
那我左邊弄出來的MENU(<~右邊選了左邊出的MENU)..可以再用上下來選嗎?..感覺都設定不到
我現在左邊的MENU按上下都不會動..反而是直接跳到出結果..沒得按ENTER進入..
5 楼
@左思@ [专家分:110] 发布于 2008-09-21 10:29:00
把你的程序段拿出来看看
6 楼
@左思@ [专家分:110] 发布于 2008-09-21 10:53:00
我自己设计了一段程序,不知道和你想的是不是一样。
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);
我来回复