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

 
 
> Организация меню.
Jenya7
сообщение Oct 25 2016, 10:37
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



У меня на экране сначала загружается главный экран с разделами меню. Потом я кнопками выбираю раздел и если я нажимаю ENTER появляется другой экран со своими разделами меню. Я могу вернутся на предыдущий экран и предыдущий выбранный раздел должен быть подсвечен.
Вопрос где хранить индекс текущего выбранного экрана и индекс выбранного раздела в нем? Сделать массив индексов экрана и в каждом экране массив разделов?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jenya7
сообщение Oct 25 2016, 11:26
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



а что если так
CODE
typedef struct SCREEN1_S
{
uint8_t item_idx;
}SCREEN1;

typedef struct SCREEN2_S
{
uint8_t item_idx;
}SCREEN2;

typedef struct SCREEN3_S
{
uint8_t item_idx;
}SCREEN3;

typedef struct SCREENS_S
{
SCREEN1 scr1;
SCREEN2 scr2;
SCREEN3 scr3;
}SCREENS;

нет. структура хранит выбранный раздел меню но из нее не видно какой экран выбран.

о. есть идея. можно немного модифицировать.
CODE

typedef struct SCREEN1_S
{
uint8_t item_idx;
uint8_t selected;
}SCREEN1;

typedef struct SCREEN2_S
{
uint8_t item_idx;
uint8_t selected;
}SCREEN2;

typedef struct SCREEN3_S
{
uint8_t item_idx;
uint8_t selected;
}SCREEN3;

typedef struct SCREENS_S
{
SCREEN1 scr1;
SCREEN2 scr2;
SCREEN3 scr3;
}SCREENS;

теперь есть индикация выбранного экрана.

Сообщение отредактировал Jenya7 - Oct 25 2016, 11:34
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 25 2016, 11:35
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Jenya7 @ Oct 25 2016, 14:26) *
а что если так
Код
typedef struct SCREEN1_S
{
  uint8_t item_idx;
}SCREEN1;

typedef struct SCREEN2_S
{
  uint8_t item_idx;
}SCREEN2;

typedef struct SCREEN3_S
{
  uint8_t item_idx;
}SCREEN3;

typedef struct SCREENS_S
{
  SCREEN1 scr1;
  SCREEN2 scr2;
  SCREEN3 scr3;
}SCREENS;


Ну просто беда с Вами...
Забудьте, что у Вас "экраны"... Вы же не картины в Эрмитаже рисуете. Любой Ваш "экран" - это набор примитивов графики, их координаты на экране, тексты и их координаты на экране и фон...
Соответственно, определите один "экран", т.е создайте его описание как массив или структуру или класс с этими графическими примитивами...
Потом соответственно, главный экран, соответствующий верхнему автомату будет содержать массив экранов и указатель на активный по состоянию главного автомата...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Oct 25 2016, 11:45
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(iosifk @ Oct 25 2016, 16:35) *
Ну просто беда с Вами...
Забудьте, что у Вас "экраны"... Вы же не картины в Эрмитаже рисуете. Любой Ваш "экран" - это набор примитивов графики, их координаты на экране, тексты и их координаты на экране и фон...
Соответственно, определите один "экран", т.е создайте его описание как массив или структуру или класс с этими графическими примитивами...
Потом соответственно, главный экран, соответствующий верхнему автомату будет содержать массив экранов и указатель на активный по состоянию главного автомата...

У меня библиотека которая создает экраны. Каждый экран это набор графических элементов - кнопки, лейблы, чекбоксы, и.т.д Я могу вызвать экран и работать с графическими элементами - в моем случае это элементы типа LABEL - каждый LABEL это пункт меню. мне лишь нужно знать выбранный экран и пункт меню в нем.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 25 2016, 11:51
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Jenya7 @ Oct 25 2016, 14:45) *
У меня библиотека которая создает экраны. Каждый экран это набор графических элементов - кнопки, лейблы, чекбоксы, и.т.д Я могу вызвать экран и работать с графическими элементами - в моем случае это элементы типа LABEL - каждый LABEL это пункт меню. мне лишь нужно знать выбранный экран и пункт меню в нем.

Ну вот, значит прорисовывать экран не нужно. И все же - экран - это массив " элементы типа LABEL", и любое действие с этими элементами должно возвращать указатель на то, какой элемент был активен...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Организация меню.   Oct 25 2016, 10:37
- - iosifk   Цитата(Jenya7 @ Oct 25 2016, 13:37) У мен...   Oct 25 2016, 11:06
|- - Jenya7   Цитата(iosifk @ Oct 25 2016, 16:06) Я дел...   Oct 25 2016, 11:11
|- - iosifk   Цитата(Jenya7 @ Oct 25 2016, 14:11) Но до...   Oct 25 2016, 11:18
- - k155la3   Цитата(Jenya7 @ Oct 25 2016, 13:37) У мен...   Oct 25 2016, 12:49
|- - Jenya7   Цитата(k155la3 @ Oct 25 2016, 17:49) Если...   Oct 25 2016, 13:01
|- - _pv   Цитата(Jenya7 @ Oct 25 2016, 19:01) мне д...   Oct 25 2016, 15:26
|- - k155la3   Цитата(_pv @ Oct 25 2016, 18:26) меню сде...   Oct 26 2016, 06:25
||- - _pv   Цитата(k155la3 @ Oct 26 2016, 13:25) В см...   Oct 26 2016, 11:06
||- - Jenya7   Цитата(_pv @ Oct 26 2016, 17:06) У каждог...   Oct 27 2016, 05:56
||- - k155la3   Цитата(_pv @ Oct 26 2016, 14:06) У каждог...   Oct 27 2016, 06:18
|- - Jenya7   Цитата(_pv @ Oct 25 2016, 21:26) меню сде...   Oct 26 2016, 07:12
- - XVR   Вам нужен стек, каждый элемент которого хранит ном...   Oct 26 2016, 08:03
- - Jenya7   понял. спасибо.   Oct 27 2016, 07:22
- - uriy   Я тоже в нескольких проектах применял micromenu. Р...   Oct 28 2016, 06:00
|- - Jenya7   Цитата(uriy @ Oct 28 2016, 12:00) Я тоже ...   Oct 29 2016, 16:07
- - Jenya7   портирую micromenu в проект и там есть такой дифа...   Nov 3 2016, 06:52
|- - k155la3   Цитата(Jenya7 @ Nov 3 2016, 09:52) . . . ...   Nov 3 2016, 08:25
|- - Jenya7   Цитата(k155la3 @ Nov 3 2016, 14:25) Распо...   Nov 3 2016, 08:36
- - Jenya7   кто нибудь портировал под ARM это меню? начинает б...   Nov 3 2016, 09:59
|- - k155la3   Цитата(Jenya7 @ Nov 3 2016, 12:59) кто ни...   Nov 3 2016, 10:07
|- - Jenya7   Цитата(k155la3 @ Nov 3 2016, 16:07) Вы не...   Nov 3 2016, 10:37
|- - _pv   Цитата(Jenya7 @ Nov 3 2016, 17:37) так то...   Nov 3 2016, 16:50
|- - Jenya7   Цитата(_pv @ Nov 3 2016, 22:50) чему там ...   Nov 4 2016, 10:34
|- - _pv   Цитата(Jenya7 @ Nov 4 2016, 16:34) а поче...   Nov 4 2016, 11:16
|- - Jenya7   Цитата(_pv @ Nov 4 2016, 17:16) наследие ...   Nov 4 2016, 11:50
|- - _pv   Цитата(Jenya7 @ Nov 4 2016, 17:50) я поня...   Nov 4 2016, 12:38
|- - Jenya7   Цитата(_pv @ Nov 4 2016, 18:38) 6 указате...   Nov 4 2016, 13:10
- - Jenya7   Вобщем прикрутил таки https://github.com/abcminiu...   Jul 29 2018, 07:12
- - inventor   я взял за образец меню от миландра перетащил на св...   Sep 6 2018, 15:59
|- - Jenya7   Цитата(inventor @ Sep 6 2018, 20:59) я вз...   Sep 7 2018, 06:37
- - x893   Если не секрет - Какая идея очень даже интересная ...   Sep 7 2018, 07:00
- - Jenya7   Цитата(x893 @ Sep 7 2018, 13:00) Если не ...   Sep 12 2018, 10:28


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

 


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


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