Структура древовидного списка написанная на языке разметки "KIB".

30 июля 2017, 22:34
Реter Konow
0
50

Создание нижепоказанного списка занимает около 5-ти минут.
Все содержание есть в этом коде.

Более ничего не нужно.


//+------------------------------------------------------------------+
//|                                   Tree view KIB-code example.mqh |
//|                                                      Peter Konow |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

NEW_GROUP, "Tree view 1", 
//------------------------------------------------------------------------------------------   
NEW_LINE, TV_MENU, "Tree View Menu 1",  TREE_ROOT,   END_LINE,
//------------------------------------------------------------------------------------------
              ROOT,"Tree View Menu 1",
//         -----------------------
NEW_LINE,  TV_MENU, "Tree View Menu 2",              END_LINE,
 
NEW_LINE,  TV_MENU, "Tree Menu 3",                   END_LINE,
//------------------------------------------------------------------------------------------  
 
              ROOT, "Tree View Menu 2",
//           -----------------------
NEW_LINE,  TV_MENU, "Tree View Menu 2.1",            END_LINE, 

NEW_LINE,  TV_MENU, "Tree Menu 2.2",                 END_LINE,       _,LABEL_IF_PRESSED, 191,

NEW_LINE,  TV_MENU, "Tree View Menu 2.3",            END_LINE, 

NEW_LINE,  TV_ITEM, "Tree View Menu 2.4",            END_LINE,
//------------------------------------------------------------------------------------------

              ROOT, "Tree Menu 2.2",  
//          -----------------------
NEW_LINE,  TV_MENU, "Tree View Menu 6",              END_LINE, 

NEW_LINE,  TV_CHECKBOX, "Tree Menu 7",               END_LINE, 

NEW_LINE,  TV_MENU, "Tree View Menu 8",              END_LINE, 

NEW_LINE,  TV_ITEM, "Tree View Menu 9",              END_LINE,
NEW_LINE,  TV_ITEM, "Tree View Menu 91",             END_LINE,
NEW_LINE,  TV_ITEM, "Tree View Menu 92",             END_LINE,
NEW_LINE,  TV_ITEM, "Tree View Menu 93",             END_LINE,
NEW_LINE,  TV_ITEM, "Tree View Menu 94",             END_LINE,
NEW_LINE,  TV_ITEM, "Tree View Menu 95",             END_LINE,
//------------------------------------------------------------------------------------------

             ROOT, "Tree Menu 7",
//         -----------------------
NEW_LINE,  CHECKBOX, "Tree View Menu 10",           END_LINE, 

NEW_LINE,  CHECKBOX, "Tree Menu 11",                END_LINE, 

NEW_LINE,  CHECKBOX, "Tree View Menu 12",           END_LINE, 

NEW_LINE,  CHECKBOX, "Tree View Menu 13",           END_LINE,
//------------------------------------------------------------------------------------------

             ROOT, "Tree View Menu 8",
//         -----------------------
NEW_LINE,  RADIO_BUTTON, "Tree View Menu 14",   GAP,50, TEXT, "Hello world! 1",  GAP,50, TEXT, "Hello world! 2", END_LINE, 

NEW_LINE,  RADIO_BUTTON, "Tree Menu 15",        GAP,50, TEXT, "Hello world! 3",  GAP,50, TEXT, "Hello world! 4", END_LINE, 

NEW_LINE,  RADIO_BUTTON, "Tree View Menu 16",   GAP,50, TEXT, "Hello world! 5",  GAP,50, TEXT, "Hello world! 6", END_LINE,

NEW_LINE,  RADIO_BUTTON, "Tree View Menu 17",   GAP,50, TEXT, "Hello world! 7",  GAP,50, TEXT, "Hello world! 8", END_LINE,
//------------------------------------------------------------------------------------------

             ROOT, "Tree View Menu 2.3",
//         -----------------------
NEW_LINE,  TV_MENU, "Tree View Menu 181",  END_LINE, 

NEW_LINE,  TV_MENU, "Tree Menu 119",       END_LINE, 

NEW_LINE,  TV_MENU, "Tree View Menu 210",  END_LINE, 

//-------------------------------------------------------------------------------------------

END_GROUP,


// group properties:
//--------------------------------


//--------------------------------------------------------------------------------------------------
//Сами пункты списка устанавливаются на свои позиции автоматически. 
//Нам не нужно их позиционировать.
//--------------------------------------------------------------------------------------------------


 //Так мы устанавливаем, что пункт "Tree View Item 5" будет открывать окно "Window 1".
"Tree View Item 5", OPENS_WINDOW, "Window 1",

К пунктам древовидного списка можно подключать целые группы элементов, которые будут является когда пункт разворачивается и исчезать когда сворачивается. Они будут интегрированы в список. Для включения группы элементов (например таблицы которая называется "Тable A") внутрь древовидного списка, нужно создать таблицу как отдельную группу, и далее подключить ее к пункту списка следующей записью:

"Table A", ROOT, "Tree Menu 3",
//По желанию, можем установить картинки для выбраных пунктов списка (переопределяем картинку установленную по умолчанию).
"TV item",           SET_LABEL,27,        
"Tree View Menu 1",  SET_LABEL,29,    
"Tree View Menu 2",  SET_LABEL,30,
"Tree Menu 3",       SET_LABEL,40,
"Tree View Menu 4",  SET_LABEL,50,
"Tree View Menu 5",  SET_LABEL,60,

Так мы можем установить, что пункт "Tree Item 2" будет открывать поле "F1", на котором могут быть свои группы элементов. То есть, этот пункт будет работать как вкладка.

"Tree Item 2",OPENS, "F1",  

Обязательно указываем наименование полотна в котором нужно нарисовать список.

"Tree view 1", IN, "Field 1", 

Обязательно указываем позицию списка внутри полотна (левый верх с отступом 10 пикселей по Х и 10 пикселей по Y).

"Tree view 1", AT,LEFT_TOP, 10,10,

Главное: порядок записи свойств группы или ее элементов значения не имеет. Определить свойства группы можно перед ее объявлением или после. Однако, само поле должно быть объявлено после объявления вкладки которая его должна открывать. Также, если мы подключаем группу к пункту списка, то сама группа должна быть объявлена после пункта. В остальных случаях, порядок расположения объявлений групп элементов и установки их свойств значения не имеет. Главные свойства которые нужно устанавливать любой группе, - это наименование поля в котором она должна рисоваться, и ее позиция на этом поле. Если поле группы не указано, то группа по умолчанию будет позиционироваться на главном поле окна (вне вкладок). Если не установить позицию группы, то она может быть не найдена в окне. Установка позиции обязательна.



Поделитесь с друзьями: