IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Контекстное меню
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Подскажите, пожалуйста как создать такое меню средствами языка Turbo Pascal.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


меню должно быть представлено в виде кнопок ? или ты имеешь в виду меню типа

1) Ввод данных
2) Вывод данных
3) Выход

допустим нажимаешь 1, вводишь данные и обратно в меню ... пока не нажмешь 3 - > выход ? Так ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


To: klem4 , ты видишь двусмысленность вопроса ? я нет!
контекстное меню это popup menu!!! ничего более!

Или по другому выпадающее!

Nolan, а вот что ты не сказал так это какой режим ? текстовый или графический ?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


ты поймешь что хотел сказать


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.
выбранный пункт передасться в прогу.

Я не работал над интерфейсом, обработкой ошибок и прочим..
лишь пример имеологии вылезающих меню.

так например стоит при выпадени меню, сохранить то что под ним, а потом вернуть.

подключить мышу...
и т.д. и т.п. до бесконечности smile.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Спасибо, Altair! Как раз то, что нужно!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.05.2024 16:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name