Создание динамических списков в TPDesign4: команды IRLB

Материал из iRidium Mobile Wiki
Перейти к: навигация, поиск

Динамический список iRidium (List) - элемент проекта, на базе которого в проекте АМХ из одного попапа (шаблона) формируется прокручивающийся список, пункты которого добавляются и удаляются во время работы проекта.

Количество пунктов списка задается командой контроллера, а ограничивается настройками графического элемента - основы списка. Содержимое попапа-шаблона в отдельном пункте списка можно видоизменять в процессе работы с проектом с помощью специальных команд.



Подготовка основы динамического списка в AMX TPDesign4

К шаблону динамического списка (попапу) команды АМХ не привязываются обычным способом.

При нажатии на один из пунктов списка, он отправляет контроллеру АМХ свой идентификатор и идентификатор под-элемента в пункте, на который было произведено нажатие. Контроллер обрабатывает эти два значения и вызывает соответствующий им сценарий.


В качестве основы списка всегда используется Multistate-Bargraph. В описании элемента нужно прописать попап - шаблон элемента списка в виде:

IridiumList=Template_1;
  • где Template_1 - имя попапа, шаблона для формирования списка


AMX DinList AddBase1.png


Во вкладке Programming основы списка мы настраиваем получение информации о нажатии на пункты этого списка. Информация передается контроллеру АМХ, на ее основе контроллер будет формировать вызов тех или иных сценариев:

Address Code - используется для управления списком с контроллера.

Если отправить значение 10 на Address Code списка, то он позиционируется на 10м пункте (если такой есть)

Level Code - используется для слежения за нажатиями на элементы списка.

Level Code отправляет контроллеру информацию о том, на какой пункт и подпункт элемента нажал пользователь.
Если задать списку Level Code: 401 и нажать на 10й пункт списка, то контроллер получит значение 10 в Level Code: 401. Информация о нажатом подпункте списка приходит в следующий по порядку Level Code: 402.
Если на 10м пункте списка есть 3 подпункта, и мы нажали на второй подпункт, то в Level Code: 402 придет значение 2 (отсчет с нуля: 0 - подложка элемента, 1 - первый подпункт, ...)


AMX DinList AddBase2.png


В качестве шаблона (типового элемента списка), всегда используется обычное всплывающее окно - Popup. Идентификатор перовго пункта списка (ID первого элемента) указывается при формировании списка командой IRLB_ADD (п.1 списка команд). Под-элементы каждого пункта списка - это обычные кнопки или другие графические элементы.

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


AMX DinList AddTemplate.png

Команды IRLB - управление динамическими списками

Команды IRLB - набор команд, отправлять которые можно только приложениям-клиентам iRidium, они не воспринимаются стандартными панелями AMX.


1. Добавление указанного количества элементов в список

send_command dvTP, "'IRLB_ADD-<address,count,start_id>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • count - число элементов списка, которое необходимо создать
  • start_id - идентификатор первого элемента в списке

Пример: создать список из 25 пунктов (основа - элемент с Code:400, число пунктов - 25, ID первого пункта - 0)

AMX DinList SendAdd.png


2. Удаление указанного элемента по ID

send_command dvTP, "'IRLB_DELETE-<address,id>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке, который нужно удалить


3. Удаление всех элементов

send_command dvTP, "'IRLB_CLEAR-<address>'" 
  • address - адрес элемента, основы списка (Multistate-Bargraph)


4. Установка "сопротивления" списка движению в процентах 0-100% (0 - нет трения, 100 - нет движения)

send_command dvTP, "'IRLB_RESISTENCE-<address,value>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • value - значение "сопротивления" в диапазоне от 0 до 100


5. Установка позиции списка

send_command dvTP, "'IRLB_POSITION-<address,id>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке, к которому нужно перейти


6. Установка цвета списка

send_command dvTP, "'IRLB_SCROLL_COLOR-<address,color>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • color - цвет (HEX, RGB, название цвета)


7. Установка координаты под-элемента списка по горизонтали

send_command dvTP, "'IRLB_ITEM_X-<address,id,subitem,value>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • value - значение координаты X элемента в пикселях


8. Установка координаты под-элемента списка по вертикали

send_command dvTP, "'IRLB_ITEM_Y-<address,id,subitem,value>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • value - значение координаты Y элемента в пикселях


9. Установка ширины под-элемента списка

send_command dvTP, "'IRLB_ITEM_WIDTH-<address,id,subitem,value>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • value - ширина элемента в пикселях


10. Установка высоты под-элемента списка

send_command dvTP, "'IRLB_ITEM_HEIGHT-<address,id,subitem,value>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • value - высота элемента в пикселях


11. Установка цвета под-элемента

send_command dvTP, "'IRLB_ITEM_COLOR-<address,id,subitem,color>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • color - цвет (HEX, RGB, название цвета)


12. Установка прозрачности под-элемента списка

send_command dvTP, "'IRLB_ITEM_OPACITY-<address,id,subitem,value>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • value - значение прозрачности элемента в диапазоне от 0 до 255


13. Установка текста под-элемента списка в формате CP1251

send_command dvTP, "'IRLB_ITEM_TEXT-<address,id,subitem,string>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • string - строка в формате CP1251


14. Установка текста под-элемента в формате Unicode send_command dvTP, "'IRLB_ITEM_UNI-<address,id,subitem,string>'"

  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • string - строка в формате Unicode


15. Установка цвета текста под-элемента

send_command dvTP, "'IRLB_ITEM_TEXT_COLOR-<address,id,subitem,color>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • color - цвет (HEX, RGB, название цвета)


16. Установка выравнивания текста под-элемента

send_command dvTP, "'IRLB_ITEM_TEXT_ALIGN-<address,id,subitem,align>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • align - способ выравнивания


17. Установка изображения под-элемента

send_command dvTP, "'IRLB_ITEM_IMAGE-<address,id,subitem,image name>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • image name - имя изображения, добавленного в галерею проекта


18. Установка выранивания изображения под-элемента

send_command dvTP, "'IRLB_ITEM_IMAGE_ALIGN-<address,id,subitem,align>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • align - способ выравнивания


19. Установка иконки под-элемента

send_command dvTP, "'IRLB_ITEM_ICON_ALIGN-<address,id,subitem,name>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • name - имя изображения, добавленного в галерею проекта


20. Установка выравнивания иконки под-элемента

send_command dvTP, "'IRLB_ITEM_ICON_ALIGN-<address,id,subitem,align>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • align - способ выравнивания


21. Установка бордюра под-элемента по идентификатору

send_command dvTP, "'IRLB_ITEM_BORDER-<address,id,subitem,border>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • border - тип бордюра

22. Установка цвета бордюра под-элемента

send_command dvTP, "'IRLB_ITEM_BORDER_COLOR-<address,id,subitem,color>'"
  • address - адрес элемента, основы списка (Multistate-Bargraph)
  • id - идентификатор элемента в списке
  • subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
  • color - цвет (HEX, RGB, название цвета)


Загрузки

Загрузить: пример реализации динамического списка в AMX TPDesign4 (52,4 KB)