![](images/chestnut/misc/left.gif) |
09.08.2008, 08:01
|
#1
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Lib_menu32 - Графическое меню без головной боли
Последнее обновление 02.10.2009
Библиотека графических меню.
Пробуйте. Оценивайте. Делайте советы какие ещё функции можно добавить.
На данный момент список функций такой:
![](images/chestnut/misc/code_php.gif)
init - Инициализация меню. Очистка списка пунктов. Можно вызывать неоднократно (например, для очистки памяти).
SetMenuWindow(x: integer; y: integer; w: integer; h: integer) - Установить окно, в котором будет
отображаться наше меню. x, y - координаты левого верхнего угла; w и h - ширина и высота окна.
По умолчанию устанавливается окно размером в весь дисплей телефона.
LoadCursor(fname: string) - Загрузить из ресурсов картинку с именем fname, которая будет использоваться
в качестве курсора меню.
AddItem(fname: string; txt: string) - Добавление пункта в меню.
fname - Путь к картинке из ресурсов, которая будет использоваться в качестве иконки для пункта меню
(если иконка не нужна - в качестве пути пишем строчку: 'NONE')
txt - Текст подписи для пункта меню
MenuFonts(f1: integer; f2: integer) - Установить шрифты, которые будут использоваться в меню.
f1 - это шрифт, используемый для всех элементов меню
f2 - шрифт, используемый для отображения выделенного пункта
По умолчанию используется нулевой шрифт в обоих случаях.
DrawMenu - Отрисовка меню в буфере экрана. Чтобы меню стало видимым, используйте Repaint.
Меню при создании сохраняет свой фон и в последующих операциях использует его,
по-этому вам не нужно делать восстановление фона меню после каждого изменения положения курсора.
HideMenu - Спрятать меню (восстановить фон). Операция проходит в буфере экрана.
Чтобы увидеть результаты изменения - используйте Repaint.
CursorUp - Передвигает курсор в меню вверх на 1 пункт
CursorDown - Передвигает курсор в меню вниз на 1 пункт
integer Selected - Возвращает номер выделенного пункта меню (счёт идет с 0).
string SelectedItem - Возвращает значение (текст) выделенного пункта меню
SetOffset(i: integer) - Установить отступ текста от левого края окна (и от иконки, если есть).
По умолчанию отступ равен 3 пикселам.
Библиотека тесно использует другую библиотеку - Lib_font32, по-этому без нее она работать не будет. Уже есть идея добавить плавную прокрутку текста в пунктах с длинным текстом. Сейчас уже бьюсь над её реализацией.
Последний раз редактировалось Piligrim, 03.10.2009 в 10:47.
|
(Offline)
|
|
Эти 12 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
|
Ghost_Russia (09.08.2008), kondr1 (12.09.2010), Kurdt (09.08.2008), Ma)(imuM (31.05.2009), Mark Castle (23.11.2008), midlet_pascal (29.01.2012), Pyth_ON (30.07.2009), Romanzes (09.08.2008), sasha_peleng (04.11.2008), Strelok (09.08.2008), valhof (09.08.2008), ЯМАКc (17.10.2008)
|
09.08.2008, 15:18
|
#2
|
ПроЭктировщик
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений (для 25 пользователей)
|
Re: Lib_menu32 - Графическое меню без головной боли
неплохо бы еще функцию
Установка определенного пункта меню активным (можно использовать CursorDown но это помоему более процесороемкий процесс)
|
(Offline)
|
|
09.08.2008, 22:29
|
#3
|
Разработчик
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений (для 638 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
А как изменять текст пункта меню?
|
(Offline)
|
|
09.08.2008, 22:35
|
#4
|
Оператор ЭВМ
Регистрация: 05.07.2008
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
odd, Агромное спасибо! ![:super:](images/smilies/super.gif) А можно сделать функцию для получения позиции курсора на экране? хочу сделать вывод справки к пунктам
Последний раз редактировалось Strelok, 09.08.2008 в 22:58.
|
(Offline)
|
|
09.08.2008, 22:57
|
#5
|
Оператор ЭВМ
Регистрация: 05.07.2008
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
И ещё было бы здорово - если текст пункта больше заданного окна меню то он прокручивается влево-вправо. И не плохо бы сделать ползунок скролинга, с возможностью отключения. Высота пунктов меню, как я понял, зависит от размера иконки?
|
(Offline)
|
|
10.08.2008, 09:29
|
#6
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Да. Высота пункта пока зависит от иконки, но в свежей версии появится функция настройки высоты пункта. Скролинг уже делается. Также добавлю функции удаления и изменения текста пунктов. Над полосой прокрутки я уже тоже думал. Скорее всего сделаю и её, но уже в отдельной библиотеке. Ждите обновления библиотек.
|
(Offline)
|
|
10.08.2008, 12:05
|
#7
|
ПроЭктировщик
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений (для 25 пользователей)
|
Re: Lib_menu32 - Графическое меню без головной боли
и еще одну мелочь можно былобы. вместо курсора битмапа генерировать филрект с опр. цветом, если картинка незадана. просто на разных разрешениях телефонах не подобртать одинаковой картинки... да и памяти меньше будет да и несложно в доработке. 2 строчки)
Еще былобы непохо центрировать надписи в меню.
|
(Offline)
|
|
10.08.2008, 21:01
|
#8
|
Оператор ЭВМ
Регистрация: 05.07.2008
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Re: Lib_menu32 - Графическое меню без головной боли
Сообщение от Kurdt
и еще одну мелочь можно былобы. вместо курсора битмапа генерировать филрект с опр. цветом, если картинка незадана. просто на разных разрешениях телефонах не подобртать одинаковой картинки... да и памяти меньше будет да и несложно в доработке. 2 строчки)
Еще былобы непохо центрировать надписи в меню.
|
А ещё лучше сделать чтоб вместо LoadCursor(fname: string) было LoadCursor(fname: image) и тогда при помощи других библиотек можно было бы обрабатывать курсор, в том числе и растягивать под размер окна
|
(Offline)
|
|
10.08.2008, 22:07
|
#9
|
Оператор ЭВМ
Регистрация: 05.07.2008
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
У меня какой то лаг странный - главное меню построенно с использованием этой библы, после нескольких переходов по пунктам меню и возврате в главное начинает автоматически включаться первый пункт
|
(Offline)
|
|
10.08.2008, 23:32
|
#10
|
Оператор ЭВМ
Регистрация: 05.07.2008
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Сменил реагирование кнопки огня с кейпрессед на кейкликед и глюк пропал
|
(Offline)
|
|
18.08.2008, 08:30
|
#11
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Немного подправлил библиотеку. Почти все ваши пожелания были учтены.
От себя еще добавил функции поддержки сенсорного экрана.
Скроллинга пока нет :-( но я уже работаю в данном направлении.
Последний раз редактировалось Piligrim, 03.10.2009 в 10:48.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
|
|
18.08.2008, 23:07
|
#12
|
Оператор ЭВМ
Регистрация: 05.07.2008
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Ругается на pointer_state - пишет что необъявлена нигде
|
(Offline)
|
|
19.08.2008, 00:10
|
#13
|
Разработчик
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений (для 638 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Strelok, поищи в теме про Lib_game аттач с именем Lib_sensor.
|
(Offline)
|
|
19.08.2008, 18:25
|
#14
|
Оператор ЭВМ
Регистрация: 05.07.2008
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
так он у меня и так есть
|
(Offline)
|
|
19.08.2008, 18:35
|
#15
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Сообщение от Strelok
так он у меня и так есть
|
А в uses объявлена?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:24.
|