Подскажите, пожалуйста как создать такое меню средствами языка Turbo Pascal.
klem4
22.11.2005 1:25
меню должно быть представлено в виде кнопок ? или ты имеешь в виду меню типа
1) Ввод данных 2) Вывод данных 3) Выход
допустим нажимаешь 1, вводишь данные и обратно в меню ... пока не нажмешь 3 - > выход ? Так ?
Altair
22.11.2005 2:31
To: klem4 , ты видишь двусмысленность вопроса ? я нет! контекстное меню это popup menu!!! ничего более!
Или по другому выпадающее!
Nolan, а вот что ты не сказал так это какой режим ? текстовый или графический ?
Altair
22.11.2005 3:35
ты поймешь что хотел сказать
uses wincrt,graph; var {$ifdef Win32}gd,gm:smallint;{$else} gd,gm:integer;{$endif} const size = 3; pitmenu : array[1..size] of string = ('p m1', 'p2',' p 3'); var menu: record x,y:longint end;
procedure viewmenu(x,y:longint); begin setcolor (15); menu.x:=x; menu.y:=y; line ( x, y,x+length(pitmenu[1])*8, y); line ( x, y+10,x+length(pitmenu[1])*8, y+10); line ( x, y,x, y+10); line ( x+length(pitmenu[1])*8, y,x+length(pitmenu[1])*8, y+10); outtextxy(x+1,y+1,pitmenu[1]); end;
Function selectmenu: integer; var ch,i,v:byte; begin v:=0; setcolor (7); bar (menu.x,menu.y+11,menu.x+100,menu.y+11); { <- size !!!!!!!!!!!!!!!!!!} setcolor (15); for i:=1 to size do begin outtextxy(menu.x+1,menu.y+10*i,pitmenu[i]); end; repeat ch:=0; ch:=ord(readkey); if (ch>= ord('1')) and (ch<=ord('9')) then begin v:=ord('1')-ch+1; setcolor (7); bar (menu.x,menu.y+10,menu.x+100,menu.y+10); { <- size !!!!!!!!!!!!!!!!!!} for i:=1 to size do begin if ch-ord('1')+1 = i then setcolor (4) else setcolor (15); outtextxy(menu.x+1,menu.y+10*i,pitmenu[i]); end; end; if (ch=13) then begin ch:=27; selectmenu:=v; cleardevice; viewmenu(menu.x,menu.y) end; until ch=27; end;
var ch:byte; begin gd:=detect; initgraph(gd,gm,''); viewmenu(100,100); repeat ch:=ord(readkey); if ch=0 then ch:=ord(readkey); if ch=109 then case selectmenu of 1: begin end; 2: begin end; end; until ch=27; readkey; end.
Вот что-то типа того получилось: (я компилирую в FPC, под TP чуть исправишь)
При нажатии на клавиу "m" у тебя меню выпадает. дальше клавишами 1..3 выбираешь пункт меню (он краснеет) и нажимаешь enter. выбранный пункт передасться в прогу.
Я не работал над интерфейсом, обработкой ошибок и прочим.. лишь пример имеологии вылезающих меню.
так например стоит при выпадени меню, сохранить то что под ним, а потом вернуть.
подключить мышу... и т.д. и т.п. до бесконечности
Nolan
23.11.2005 2:12
Спасибо, Altair! Как раз то, что нужно!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.