реклама на сайте
подробности

 
 
> Реализация меню для работы со знакосинтезирующим ЖКИ, Поделитесь опытом. Пожалуйста.
Alex2578
сообщение Aug 6 2007, 13:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 20-02-07
Пользователь №: 25 515



Всех приветствую.

Поделитесь пожалуйста опытом, кто как организует меню для работы со занакосинтезирующим ЖКИ.

Задача:
- просмотр информации о состоянии чего-либо;
- внесение данных, типа калибровка и т.д.;
- кофигурирование;
- ну и чего-нибудь еще....

Думаю, в глубину будет уровня 3-4, не больше.

С чего начать? Как организовать иерархию?

Прошу пардон, но на этот момент вопросы только общие, более конкретные, быть может, появятся позже.

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
man with no name
сообщение Aug 6 2007, 14:44
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586



Можно делать следующим образом: описываем структуру одного элемента меню, в которой пишем строку и указатель на функцию, которая вызывается по нажатию кнопки enter или подобной.
Код
typedef struct
{
  char menu_str[LCD_WIDTH+1];
  MENU_HANDLER_PROC func;
} S_MENU_ITEM;


MENU_HANDLER_PROC - тип-функция void func(void). описывается как
typedef void (*MENU_HANDLER_PROC)(void);

делаем процедуру вывода меню на экран
Код
void ShowMenu(S_MENU_ITEM *menu, int element0, int cursor_pos)
{
  ...
}


тогда процедура самого меню будет выглядеть примерно так:
Код
void Menu(S_MENU_ITEM *menu)
{
  char ret_menu = 0;
  int cursor = 0;
  int element0 = 0;
  while (!ret_menu)
  {
    ShowMenu(menu, element0, cursor);
    switch(ch)
    {
    case VK_UP:
      // перемещаем вверх курсор, если он не 0, либо первый выводимый элемент меню (element0)
      // ...
      break;
    case VK_DOWN:
      // то же самое, только с точностью до наоборот
      // ...
      break;
    case VK_ENTER:
      menu[element0+cursor].func();
      break;
    case VK_EXIT:
      ret_menu = 1;
      break;
    }
  }
}


а в обработчиках рекурсивно запускаем эту же функцию Menu, но с другими параметрами.

Можно и по-другому, но я делал так. Только структуры хранил во флэше. Отличается только запуск функции-обработчика и вывод строки (а он здесь и не описан).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alex2578   Реализация меню для работы со знакосинтезирующим ЖКИ   Aug 6 2007, 13:34
- - GDI   В исходниках программ и библиотек смотрели уже? ht...   Aug 6 2007, 14:01
|- - Alex2578   Цитата(GDI @ Aug 6 2007, 18:01) В исходни...   Aug 7 2007, 03:54
- - GDI   Вот тема как нельзя кстати всплыла http://electron...   Aug 7 2007, 14:24
- - VDG   Цитата(Alex2578 @ Aug 6 2007, 17:34) Поде...   Aug 11 2007, 13:21
- - Aesthete Animus   Имеется мега16 с подключенными к ней двухстрочным ...   Dec 18 2007, 10:09
|- - Dog Pawlowa   Цитата(Aesthete Animus @ Dec 18 2007, 14...   Dec 18 2007, 10:25
- - umup   сделать массив struct-ов, в каждом - текст пункта ...   Dec 18 2007, 10:16
|- - Aesthete Animus   Цитата(umup @ Dec 18 2007, 13:16) сделать...   Dec 18 2007, 10:30
- - umup   Цитатасколько памяти съест такая реализация ну пос...   Dec 18 2007, 10:57
|- - Aesthete Animus   Цитата(umup @ Dec 18 2007, 13:57) ну посч...   Dec 18 2007, 11:26
- - ochkarik_   А как вам такой принцип реализации меню? В прил...   Feb 23 2008, 14:15
- - KRS   Цитата(ochkarik_ @ Feb 23 2008, 17:15) Ф ...   Feb 23 2008, 17:04
- - Getmanov   CODE /*******************************************...   Feb 24 2008, 09:59


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016