forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Как сделать lib_menu32 круговую прокрутку и запоминание курсора (http://forum.boolean.name/showthread.php?t=12099)

Dimon 03.03.2010 14:50

Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
Как сделать использую lib_menu32 круговую прокрутку и запоминание курсора?? Т.е
1, круговая прокрутка- это когда я например на нижнем пунете нажимаю вниз и перехожу на самый верхний пункт. ???

2, запоминание курсора вот например сделал я несколько пунктов в меню. ПУсть "информация" , "о програме", "помощь", "выход", НАпример когда я захожу в раздел "помощь" то при нажатии на правый софт вернусь в главное меню,

( if getkeypressed = -7 then cls; mainmenu; repaint; )

и курсор будет на верхнем пункет "информация", а мне надо чтоб курсор был на пункте "помощь", т.е. куда я заходил.

Dream 03.03.2010 15:08

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
1-
Допустим на экран влезается 5 пунктов меню. у тебя есть список из семи пунктов. когда прокручиваешь меню, первым пунктом будет отрисовыватся уже не тот что первый в списке, а n -текущий пункт(сколько уже пролистано) n+5- последний пункт меню, который будет рисоватся. если n+5> 7(количество всех пунктов меню, которые есть у нас в списке) тогда рисуем пункты начинае с 1 до (n+5-7).
гдето так. конечно можно сделать всё по людски через mod% и прочеие функции, но я не хочетел так писать, вдруг будет сложно понять.
2-3. тут главное нормально организовать эти самы меню. и запомнитать предыдущий пункт меню.

odd 03.03.2010 17:29

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
Так сложно выяснить позицию курсора в момент входа в пункт и потом снова переместить его туда же? Всё это уже есть в библиотеке. Функций там столько, что можно и круговую прокрутку курсора тоже делать без проблем. Почитай документацию к библиотеке.

Dimon 10.03.2010 15:58

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
Цитата:

Сообщение от odd (Сообщение 140405)
Так сложно выяснить позицию курсора в момент входа в пункт и потом снова переместить его туда же? Всё это уже есть в библиотеке. Функций там столько, что можно и круговую прокрутку курсора тоже делать без проблем. Почитай документацию к библиотеке.

я не понял как сделать круговую прокрутку и запоминание курсора. ТАм только функции а куда их вставлять непонятно.

cherepets 10.03.2010 19:03

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
посмотри пример в теме про либу. там показано как явно задавать пункт на который указывает курсор. если курсор на последнем и нажата вниз -> задай 1 и наоборот.

вот тебе и круговая прокрутка))

Dimon 11.03.2010 15:48

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
ДА НЕТУ ТАМ ТАКОГО!!! ТАМ только если выбран пункт то делать то-то , а если направлен курсор ТО НЕТУ ТАКОЙ КОМАНДЫ!!! ЧТОБ СДЕЛАТЬ ЕСЛИ НАПРАВлен на послденем то передвинуться к первому при нажатии низа!!!!!

и загрузку курсора не понятнно как делать!!
если я делаю так

if key2 = -7 then mainmenu; SetCursor(4); repaint;

то ничего не выхлодит!!!!

cherepets 12.03.2010 11:22

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
пример там в первом посте. читай внимательно. odd оставил все комменты нужные для понимания

Dimon 12.03.2010 15:50

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
Цитата:

Сообщение от cherepets (Сообщение 141654)
пример там в первом посте. читай внимательно. odd оставил все комменты нужные для понимания

да НЕТУ ТАМ такого!!!! СКажите как наглюдно пользоваться этой вешью! Я не понял как запоминать курсор и потом его зугружатЬ!!!! Скажите какие команды нужно для запоминанеия и выгружания!!! И как потом возвращаться правильно к меню /!!! Пожалуйста!! Всего 2 функции давно бы сказали за 3 минуты чем одно и тоже говоирть ! НЕту там такого в примере!!!!

----
УРА!!!!!!!!!!!!!!!!!!!!! НАКОЕНЦ ТО Я ПОНЯЛ!!!!! СПАСИБО ВСЕМ БОЛЬШОЕ!!!! РАЗОБРАЛСЯ!!!!! Я СДЕЛАЛ ЗАПОминание курсора и потом его загружениЕ!!!!!! ОСталось только КРУГОВУЮ прокрутку, ПОЖАЛУЙСТА ПОМОГИТЕ Её сделать!

cherepets 12.03.2010 17:44

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
зацитирую пример:
PHP код:

...
SetCursor(4); // Пример явного перемещения курсора на нужный пункт
...
if 
SelectedValue 'exit' then Halt// Можно и так проверять. Чтоб не ломать мозги: какой же там номер пункта?
... 

а теперь себя:
Цитата:

Сообщение от cherepets (Сообщение 141493)
посмотри пример в теме про либу. там показано как явно задавать пункт на который указывает курсор. если курсор на последнем и нажата вниз -> задай 1 и наоборот.

вот тебе и круговая прокрутка))


Dimon 12.03.2010 17:53

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
Цитата:

Сообщение от cherepets (Сообщение 141692)
зацитирую пример:
PHP код:

...
SetCursor(4); // Пример явного перемещения курсора на нужный пункт
...
if 
SelectedValue 'exit' then Halt// Можно и так проверять. Чтоб не ломать мозги: какой же там номер пункта?
... 

а теперь себя:

ну если я делаю if selected то этот пункт должен выбираться! А мне надо, чтоб если у меня курсор наведен на последнем пункте, и листнуть вниз то меня перенесло на первый. И наоборот, если, когда наведен курсор на первом нажать вверх, то перебросит на нижний. Хотя это анологично делается. Я не знаю какой командой моно получить тот пункт меню, на который наведен курсор!

odd 12.03.2010 18:11

Ответ: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
Короче, я уже выложил пример в библиотеках.

VM 13.03.2010 20:40

Re: Как сделать lib_menu32 круговую прокрутку и запоминание курсора
 
Если в меню 4 строки
Код:

if key = GA_UP then
  if Selected = 0 then SetCursor(3) else CursorUp;
if key = GA_DOWN then
  if Selected = 3 then begin SetCursor(0) else CursorDown;



Часовой пояс GMT +4, время: 21:32.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot