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

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

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

 
 Ответить  Открыть новую тему 
> Контекстное меню
сообщение
Сообщение #1





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

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


Подскажите, пожалуйста как создать такое меню средствами языка Turbo Pascal.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 



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