Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2013, 22:04   #1
GamBitFRK
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 78
По умолчанию Графическое меню с мышью Turbo Pascal

Доброго вечера, Уважаемые программисты. У меня возникли трудности с подключением мышки. Нужно создать обыкновенное графическое меню и выбирать его пункты при помощи мышки. Если у кого есть программа или кто-то подскажет, как это реализовать. Заранее большое спасибо
GamBitFRK вне форума Ответить с цитированием
Старый 14.01.2013, 22:31   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Либо Turbo Vision либо через прерывания BIOS или прямое обращение к видеопамяти.
Почитай про первое, ибо второе чуть сложнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.01.2013, 22:31   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Либо Turbo Vision либо через прерывания BIOS или прямое обращение к видеопамяти.
Почитай про первое, ибо второе чуть сложнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.01.2013, 22:38   #4
GamBitFRK
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 78
По умолчанию

Спасибо, но это я знаю. Через прерывания не получается, а это, по моему мнению, самый нормальный способ
GamBitFRK вне форума Ответить с цитированием
Старый 14.01.2013, 23:41   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Через прерывания не получается
А как пробовал?
Я когда-то с видеопамятью работал.
Впрочем graph.tpu еще не отменили. Там есть функции рисования, используй его.
А для работы с мышкой прерывание 33h:
http://yandex.ua/yandsearch?text=33h...oc=10&lr=20554
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.01.2013, 23:53   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

поиграйтесь с приложенным архивом.
Там же внутри есть и вордовский файлик: "Работа с мышкой в Pascal."
и модуль MOUSE_OS.PAS
и программка, демонстрирующая работу с модулем. (не доделанная и (с) не мой... )
Вложения
Тип файла: rar krest_mouse_demo.rar (30.8 Кб, 50 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.01.2013, 21:08   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

На всякий случай: чтобы работать в DOS с мышью, нужно установить мышиный драйвер.
s-andriano вне форума Ответить с цитированием
Старый 15.01.2013, 22:02   #8
GamBitFRK
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 78
По умолчанию

Буду очень признателен, если кто-то напишет код, обычный пример, 1 пункт меню и мышь работающая. При нажатии на пункт, что-то выполняется. остальное доделаю. Спасибо заранее
GamBitFRK вне форума Ответить с цитированием
Старый 15.01.2013, 22:28   #9
GamBitFRK
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 78
По умолчанию

Уже разобрался. Последний вопрос, тут уже не знаю, что делать.
Как дать понять курсору мыши, что мы навели на пункт меню?
Определять, когда мы навели на область, где другой цвет?
Или как? тут идей совсем нет, если кто-то подкинет, буду благодарен
GamBitFRK вне форума Ответить с цитированием
Старый 15.01.2013, 23:34   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Как дать понять курсору мыши, что мы навели на пункт меню?
GamBitFRK, мой пример с крестиками Вам ничем не помог, да?

Зачем курсору мыши что-то давать понять?!
Вам нужно просто отловить момент, когда произошло нужное Вам событие.
В выложенном мною примере - это нажатие на левую кнопку мышки.
Проверяется это в цикле (крутим, пока не нажали на лев.кнопку мышки)
Код:
        repeat
          mousecondition(x,y,lt,rt,ct);
        until lt;
процедура эта возращает координаты мышки и признак нажатия клавиш "левой", "правой", "центральной". Работает, как уже и было верно сказано выше, через INT (прерывание) 33h
Код:
  procedure mousecondition;
    begin
      reg.ax:=3; intr($33,reg);
      x:=reg.cx; y:=reg.dx;
      if reg.bx and 1 = 0 then left:=false else left:=true;
      if reg.bx and 2 = 0 then right:=false else right:=true;
      if reg.bx and 4 = 0 then centr:=false else centr:=true;
    end;
Цитата:
Определять, когда мы навели на область, где другой цвет?
можно по разному делать, но я бы лично, банально, по координатам X и Y определял, в какую область ткнули мышкой. Если эта облать совпадает с областью, где наш пункт меню - значит этот пункт и выбран!

Последний раз редактировалось Serge_Bliznykov; 15.01.2013 в 23:40.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графическое меню в Pascal'е. Astrador Помощь студентам 0 01.06.2012 14:00
программа с движущимся шариком и меню в turbo pascal dongat Помощь студентам 4 24.02.2012 19:05
Графическое меню Andrey770 Паскаль, Turbo Pascal, PascalABC.NET 2 31.10.2011 20:51
графическое меню. с чего начать? mINdFiELd Помощь студентам 2 27.05.2011 19:55
графическое подчеркивание ссылок в меню lisa3281 HTML и CSS 1 08.03.2009 14:32