Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 01.09.2010, 21:25   #91
Ksanatos
ПроЭктировщик
 
Аватар для Ksanatos
 
Регистрация: 31.01.2010
Адрес: Россия, респ. Башкортостан, г. Бирск
Сообщений: 137
Написано 12 полезных сообщений
(для 17 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

Ясно теперь. Спасибо.
__________________



(Offline)
 
Ответить с цитированием
Старый 12.05.2011, 16:51   #92
kizup
Нуждающийся
 
Аватар для kizup
 
Регистрация: 12.12.2010
Адрес: SaratoF
Сообщений: 85
Написано 5 полезных сообщений
(для 5 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

Появились ошибки при использовании SetMenuWindow.
Рисую фоновую картину, поверх неё хочу в центре меню, а вместо моей задумки появляется моя фоновая картинка с белым прямоугольником на месте меню, убираю SetMenuWindow и всё замечательно, но мне нужно по центру!!!!
Миниатюры
Нажмите на изображение для увеличения
Название: 2011.05.12_16.09.20_1.png
Просмотров: 1076
Размер:	96.3 Кб
ID:	13729  
__________________

Последний раз редактировалось kizup, 12.05.2011 в 17:13. Причина: Прикрепил скрин
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 09:27   #93
kizup
Нуждающийся
 
Аватар для kizup
 
Регистрация: 12.12.2010
Адрес: SaratoF
Сообщений: 85
Написано 5 полезных сообщений
(для 5 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

Мне кто нибудь ответит??????
__________________
(Offline)
 
Ответить с цитированием
Старый 15.09.2012, 14:19   #94
Gonzo
Оператор ЭВМ
 
Аватар для Gonzo
 
Регистрация: 12.01.2011
Адрес: Воронеж
Сообщений: 32
Написано одно полезное сообщение
Вопрос Ответ: Lib_menu32 - Графическое меню без головной боли

Привет сообществу!
Возникла необходимость сделать вложенное меню.
Вынес вывод меню и выбор пункта в функцию.
Происходит зацикливание при выборе любого пункта:
program MenuDemo;
uses font32, sensor, menu32;
type
  TMenuItem = record
    ImgPath, Hint, Name: string;
  end;
var
  key, i: integer;
  CurrentMenu: array[0..9] of TMenuItem;
  CurrentMenuItem: string;

function Menu(ItemsCount: Integer): string;
var
  k: Integer;
begin
  menu32.init; // инициализация меню
  LoadCursor(CreateCursor(GetWidth, 24, 4278190250)); // Создаем курсор
  SetMenuWindow(0, 0, GetWidth, GetHeight); // Задаем окно, в котором будет отображаться меню
  MenuFonts(0, 1); // Основной и курсорный шрифты
  for k := 0 to ItemsCount do //Добавляем элементы меню
    AddItem2(LoadImage(CurrentMenu[k].ImgPath), CurrentMenu[k].Hint, CurrentMenu[k].Name);
  SetCursor(0); // Выбираем первый пункт
  sensor.init;
  DrawMenu;
  Repaint;
  repeat
    key := KeyToAction(GetKeyPressed);
    //key:=KeyToAction(GetKeyClicked);
    if key = GA_DOWN then
    begin
      if Selected < ItemsCount then
        CursorDown
      else
        SetCursor(0);
      DrawMenu;
      Repaint;
      Delay(100);
    end; // Вниз
    if key = GA_UP then
    begin
      if Selected > 0 then
        CursorUp
      else
        SetCursor(ItemsCount);
      DrawMenu;
      Repaint;
      Delay(100);
    end; // Вверх
    if (pointer_state = 1) then // Если нажали на сенсорный экран
    begin
      SensorClick(pointer_pressed_x, pointer_pressed_y); // Передаем координаты в меню
      DrawMenu;
      Repaint;
    end;
    Delay(5);
    Scroll;
    Delay(5);
    Scroll;
  until (key = GA_FIRE) or (SensorState = 1);
  Menu := SelectedValue;
  for k := ItemsCount downto 0 do
    RemoveItem(k);
  HideMenu;
  Repaint;
end;

begin
  font32.init(2);
  Font(0);
  LoadFont('Verdana_7'); // Основной шрифт
  Font(1);
  LoadFont('Verdana_7b'); // Такой же шрифт, но утолщенный и белый (для выделенного пункта)
  i := 0; //для тестирования
  repeat
    i := i + 1; //для тестирования
    //Основное меню
    CurrentMenu[0].ImgPath := '/info.png';
    //CurrentMenu[0].Hint:='Информация';
    CurrentMenu[0].Hint := 'Информация' + IntegerToString(i); //чтобы было видно зацикливание
    CurrentMenu[0].Name := 'info';
    CurrentMenu[1].ImgPath := '/profile.png';
    CurrentMenu[1].Hint := 'Личные данные';
    CurrentMenu[1].Name := 'profile';
    CurrentMenu[2].ImgPath := '/connect.png';
    CurrentMenu[2].Hint := 'Подключение';
    CurrentMenu[2].Name := 'onoff';
    CurrentMenu[3].ImgPath := '/exit.png';
    CurrentMenu[3].Hint := 'Выход';
    CurrentMenu[3].Name := 'exit';
    CurrentMenuItem := Menu(3);
    if CurrentMenuItem = 'info' then
    begin
      //
    end
    else if CurrentMenuItem = 'profile' then
    begin
      //
    end
    else if CurrentMenuItem = 'onoff' then
    begin
      //
    end
    else if CurrentMenuItem = 'exit' then
      Halt;
  until False;
end.
Если заменить GetKeyPressed на GetKeyClicked, то при работе с клавишами телефона, от зацикливания можно избавиться. Насколько я могу судить, GetKeyPressed не удаляет данные из буфера ввода (по аналогии с keypressed и readkey в pascal).
Но при работе с сенсором, при нажатии на выделенный пункт меню, так же происходит зацикливание. Т.е. SensorState не сбрасывается.
----
Можно ли исправить эту проблему? Или может я что-то делаю не так?
Проект и используемые либы в аттаче.
Вложения
Тип файла: rar MenuDemo.rar (72.9 Кб, 844 просмотров)
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графическое меню. GRAY_WOLF Наше Open Source Software 0 18.12.2009 20:33
графический планшет и 3D Max SKA_DIMKA 3D Моделирование 11 18.08.2009 17:28
Как программно узнать имя пункта меню который был выбран (Обычное/стандартные меню)? Richik Основной форум 5 25.05.2009 23:20
2д игровой графический чат Serg153 Основной форум 17 01.02.2009 00:35
Графическое меню в Midlet Pascal. Как? JIexa Основной форум 9 29.06.2008 13:37


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com