Галерея UI написанных на MQL - страница 43

 
hini #:
Когда панель инструментов сужается, панель задач внизу реагирует не сразу, нужно переключиться на другой график и щелкнуть обратно, прежде чем панель задач переместится в низ. Не уверен, что это можно улучшить.

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

 
hini #:
Я рассчитываю добавить больше (7) УРОКОВ, чтобы пользователи знали, как пользоваться библиотекой.

Несомненно, вы правы. Нужно больше уроков. Очень занят разработкой и времени на составление уроков сейчас почти нет. Однако, как только закончу три базовые задачи: программное управление элементами, динамические таблицы и масштабируемые окна, сразу начну написание статей по языку разметки. 

 

Действительно, динамические окна не закончены. Поэтому не хотел их включать в релиз. Но вчера зашла речь о масштабируемом окне и я решил показать на каком этапе разработки они находятся.

По моим оценкам, окна завершены на 80%.

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

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

Сложнее динамичного окна больше ничего нет. Даже древовидный список был легче.

 

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

Подумаю как решить эту проблему.

 

Напомню: если найдете какие то баги - не важно какие - пожалуйста сообщайте. Это необходимо для улучшения конструктора и движка.

Замечу, что у найденных пользователем/тестировщиком проблем может быть несколько причин:

  • (1)  Недоработка/ошибка кода.
     //-----------------------------------------------------
  • (2)   Неправильная установка релизной версии конструктора и движка в МЕ или на МТ5.
  • (3)   Неверно написанный пользователем код разметки.
  • (4)   Неполное понимание правил работы с графическим интерфейсом.
  • (5)   Ошибочная интерпретация поведения элементов интерфейса.
  • (6)   Некорректно заданные параметры или свойства.
       //-----------------------------------------------------


Согласитесь, что только первый пункт - 100% по моей вине. Остальные тоже по моей вине, но только наполовину. Потому что либо плохо объяснил, либо забыл объяснить. Понимая это, я вполне самокритичен в оценке результатов тестирования. Но и пользователь должен помнить что не все что не работает, действительно не работает по моей вине. Но считаю, что люди которые пробуют или тестируют конструктор и движок вполне обладают нужным уровнем компетенции. Так что этот пост просто констатация очевидного.


 

Уважаемые форумчане могли заметить, что в последнем релизе довольно много окон.

Перечислю:

1. Уже знакомый Таскбар (Taskbar) конструктора.

2. Главное контекстное меню конструктора (Main Menu).

3. Пользовательское контекстное меню Сustom Menu, вызываемое из главного меню.

4. Пользовательские окна меню вызываемые из пользовательского Сustom Menu. (Три окна: Demo windows, Settings windows, Dialog windows).

5. Пять окон настроек: Main parameters, Account info, Input parameters, Settings example 1,  Settings example 2.

6. Шесть диалоговых окон: Risky management, Incorrect settings, Winning 1000$, Processing the data, Allow changes, Sorry, this order is blocked.


Вместе получается 17 окон.

Каждое окно содержит разное количество элементов. Самое маленькое до 10-ти, большое - до сотни или больше. Но это не предел. Окон может быть в 2 или в 3 раза больше. Хотя не тестировал конструктор на максималках, уверен что он справится и с пятикратным количеством окон.

Но, хотел сказать о другом. Многие окна можно использовать как шаблон. В первую очередь окна настроек и сообщений. Общая структура может наследоваться или передаваться между проектами одного человека или многих. Ведь код разметки достаточно прост, а его объединение не сложно. 

И так, из чего был собран демонстрационный проект? Предлагаю заглянуть в файл 

#include<(2) KIB PROJECTS\(6) DEMO PROJECTS\Demo project 1.mqh>        подключенный в (1) KIB-source v1.mq5.

Там найдете KIB-code всех окон этого демо-проекта. 

Я покажу код каждого окна отдельно, чтобы желающие могли разобраться.

 

Главное контекстное меню:


//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Main context menu",    W_TYPE, MENU,   WINDOW_GROUP, MAIN_CONTEXT_MENU, 
//---------------------------------------------------------------------------------- 
 /**/ GROUP, "Menu items",
 //-----------------------------
 
__, M_ITEM, "MAIN MENU", POINTED,0, 
                       //-----------------------------
                       _,N_COLOR,(uint)C'240,240,240',
                       //-----------------------------
                       _,FONT_SIZE, 10, 
                       _,TEXT_STYLE, (int)FW_BOLD,
                       _,TEXT_FONT,"Arial_Black", 
                       _,text, N_COLOR,(uint)C'0,0,0',  
                       _,text, _A1_,_C2C, 
                       _,text, _C1_,-20, 
                       _,text, _A2_,_C2C,
                       
                       //-----------------------------
__, M_SEP,A, 
//---------------------------------------------------------------------------------- 
__, M_ITEM, "Bring window on top", TENURED,  _,PAR_TYPE,0, _,C_FUNCTION, BRING_WINDOW_ON_TOP,  _,N_LABEL,"::Images\\16x16\\Up.bmp", 
//----------------------------------------------------------------------------------
__, M_SEP,A, 
//----------------------------------------------------------------------------------
__,M_ITEM,"Standart Taskbar", OPENS_WINDOW, "Taskbar", _,N_COLOR, (uint)C'255,255,230', _,P_COLOR, (uint)C'255,255,220',_,NP_FRAME_COLOR, (uint)C'255,255,20',
//----------------------------------------------------------------------------------
 __, M_SEP,A, 
//---------------------------------------------------------------------------------- 
__,M_ITEM,"Custom Taskbar", _,N_COLOR, (uint)C'240,255,240', _,P_COLOR, (uint)C'230,255,230',_,NP_FRAME_COLOR, (uint)C'0,255,0',
//----------------------------------------------------------------------------------
 __, M_SEP,A, 
//----------------------------------------------------------------------------------
__,M_ITEM,"Custom Menu",   _,N_COLOR, (uint)C'240,240,255', _,P_COLOR, (uint)C'220,220,255',_,NP_FRAME_COLOR, (uint)C'120,120,255', 
//----------------------------------------------------------------------------------   
__, M_SEP,A,
//----------------------------------------------------------------------------------
Y_GAP,20, 
//----------------------------------------------------------------------------------
__, M_SEP,A, 
//----------------------------------------------------------------------------------
__, M_ITEM,"Sounds menu",
//----------------------------------------------------------------------------------
__, M_ITEM,"Color Picker",
//----------------------------------------------------------------------------------
__, M_ITEM,"Frames",
//----------------------------------------------------------------------------------
__, M_ITEM,"Fonts menu",
//----------------------------------------------------------------------------------
__, M_ITEM,"Icons", 
//----------------------------------------------------------------------------------
__, M_SEP,A, 
//----------------------------------------------------------------------------------
__, M_ITEM,"Save project and print the API file",C_FUNCTION, SAVE_PROJECT, 
//----------------------------------------------------------------------------------    
                  _,N_LABEL,"::Images\\16x16\\Save.bmp", 
//----------------------------------------------------------------------------------                  
                  _,N_COLOR, (uint)C'255,230,230', _,NP_FRAME_COLOR, (uint)C'255,70,70', 
//----------------------------------------------------------------------------------                  
                  _,P_COLOR, (uint)C'255,220,220', 
//----------------------------------------------------------------------------------
GAP,30,
//----------------------------------------------------------------------------------
__, M_SEP,A,
//----------------------------------------------------------------------------------
__, M_ITEM,"About the program",_,N_LABEL,"::Images\\16x16\\Help symbol.bmp",
//----------------------------------------------------------------------------------
END_GROUP,
//---------------------------------
i,AT, _X2X,"MF",3, _Y2Y,"MF",3,
//---------------------------------
i, TENURED, 
//----------------------------------------------------------------------------------
END_WINDOW, 
 

//-------------------------------------------------------------------- 
NEW_WINDOW,  
//-----------------------------
W_NAME, "Custom Menu",    
//-----------------------------
W_TYPE, MENU,   
//-----------------------------
WINDOW_GROUP, MAIN_CONTEXT_MENU,
//-----------------------------

//------------------------------------------------------------------- 
GROUP, "Menu items",
//-----------------------------
__, M_ITEM, "MY MENU", POINTED,0, 
                       //-----------------------------
                       _,FONT_SIZE, 9, 
                       _,TEXT_FONT,"Arial_Black", 
                       _,text, _A1_,_C2C, 
                       _,text, _C1_,-30, 
                       _,text, _A2_,_C2C,
                       _,text, _C2_,0, 
                       //-----------------------------
//-------------------------------------------------------------------------------
__, M_SEP,A, 
//-------------------------------------------------------------------------------
__, M_ITEM, "Bring window on top", TENURED,  _,PAR_TYPE,0, _,C_FUNCTION, 10000013,  _,N_LABEL,"::Images\\16x16\\Up.bmp", 
//-------------------------------------------------------------------------------
__, M_SEP,A, 
//-------------------------------------------------------------------------------
__, M_SEP,A, 
//-------------------------------------------------------------------------------
__, M_ITEM, "Show/Hide Taskbar", _,N_LABEL,"::Images\\16x16\\Toolbox.bmp", 
//-------------------------------------------------------------------------------

//-------------------------------------------------------------------------------
#include <(2) KIB PROJECTS\(1) Must be included\User section\My menu section.mqh> 
//-------------------------------------------------------------------------------
 END_GROUP,
 
//----------------------------------------------------------
//*DO NOT CHANGE GROUP POSITION-----------------------------
//----------------------------------------------------------
i, AT,_X2X,"MF",3, _Y2Y,"MF",3, 
//---------------------------------------------------------- 
END_WINDOW, 
//-------------------------------------------------------------------------------
 

//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Demo windows",    W_TYPE, MENU, 
//----------------------------------------------------------------------------------
 GROUP, "Menu items",
 //-----------------------------
 __, M_ITEM, "Settings windows",
//------------------------------ 
 __, M_ITEM, "Dialog windows",
 //-----------------------------
 END_GROUP,
//------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 


//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Settings windows",    W_TYPE, MENU, 
//----------------------------------------------------------------------------------
 GROUP, "Menu items",
 //-----------------------------
 __, M_ITEM, "Main Parameters", 
//----------------------------- 
 __, M_ITEM, "Account info:", 
//----------------------------- 
 __, M_ITEM, "Input parameters:",
//----------------------------- 
 __, M_ITEM, "Settings example 1",
//----------------------------- 
 __, M_ITEM, "Settings example 2", 
//-----------------------------
 END_GROUP,
//-----------------------------
END_WINDOW,
//----------------------------------------------------------------------------------