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

 
Протестировал разные события изменения размеров графика. Похоже проблема только с переключением графиков, на котором не происходит фактического изменения размеров. Но функция ChartGetInteger() упорно сообщает 490 на 103. 

На остальных событиях все в порядке.


Фикс таскбара в следующем релизе. 
 
Реter Konow изменения размера графика. Похоже, что проблема возникает только при переключении графика, в этом случае фактического изменения размера не происходит. Однако функция ChartGetInteger() постоянно сообщает о 490 до 103.

Все остальные события в порядке.


Проблема с панелью задач будет исправлена в следующем выпуске.
Спасибо за проделанную работу! С нетерпением ждем ваших работ.
 
hini #:
Спасибо за проделанную работу! С нетерпением ждем ваших работ.
Благодарю!
 

Очистил, перекомпилировал, переустановил.

Перечислю замеченное, не в определённом порядке:

1. После открытия окна  не появляется на таскбаре ничего. После сворачивания окна кнопка появляется. После разворачивания - не пропадает. Если задумана концепция поведения "как в винде", должна появляться сразу.

2. С динамическим окном после проведения курсором поверх кнопок сворачивания и разворачивания они остаются подсвеченными, пока курсор находится внутри окна.

3. С динамическим окном после разворачивания шапка становится серой, остаётся серой после возврата, и восстанавливает цвет только после сворачивания и возврата.

4. Развёрнутое окно не скрывает шкалы времени и цен на графике.

5. Таблица, размещённая под "H_TAB, "Report" командой "i, AT, _X2X, "MF", 5, _Y2H, "Report", 5," игнорирует установку левого края. То же и с "i, AT, _X2X, "MF", 5, _Y2Y, "MF", 20,".

6. Самое главное. То, что динамическое окно не разрешает V_BOX, полностью изменило мой дизайн. Две таблицы для удобства позиционирования и наличия прокрутки были в своих боксах. Теперь, когда пришлось их рисовать прямо на "MF", я не могу позиционировать нижнюю таблицу сразу под верхней. Привязка "i, AT, _X2X, "MF", 5, _Y2H, "Table1", 5," не работает, так как имя группы Table1 не является элементом. Удалось привязаться к последней строке таблицы, но при динамической таблице это не вариант. Пока не понял, как обращаться именно к таблице, а не к группе. Если задумано программно добавлять строки к таблице, значит предполагается способ адресации к таблице.

7. Ну и хотелка. Ваше динамическое окно - такое же равноправное окно, которое можно разворачивать и сворачивать. Мне бы хотелось не окно, а десктоп. Ну как у Вашего конструктора. Чтобы оно

а) сразу открывалось развёрнутым, покрывая весь график

б) не имело шапку и рамку (только таскбар)

в) не могло сворачиваться

г) позволяло размещать элементы, как и обычное окно

Ну то есть заменить DINAMIC на FULLSCREEN или DESKTOP. База для этого у Вас уже есть.

 
Edgar Akhmadeev #:

...

Спасибо за подробно изложенное мнение.  

Попробую решить Вашу проблему с динамическим окном - сложность расположения таблиц.

Скажу так - динамическое полноэкранное окно несет особое предназначение в пользовательском графическом интерфейсе и как следствие имеет конкретные ограничения. Оно не универсально, как окно "SETTINGS". И это логично. Ведь все специфически "заточенное" всегда в чем то ограничено. 

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

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

Результат:

(Нажмите на картинку)


Код пока выкладывать не стану, т.к. откровенно говоря все очень "сыро". Пришлось задействовать трюки и "костыли". Но, как видите - все вполне может работать.

 
Edgar Akhmadeev #:
...

7. Ну и хотелка. Ваше динамическое окно - такое же равноправное окно, которое можно разворачивать и сворачивать. Мне бы хотелось не окно, а десктоп. Ну как у Вашего конструктора. Чтобы оно

а) сразу открывалось развёрнутым, покрывая весь график

б) не имело шапку и рамку (только таскбар)

в) не могло сворачиваться

г) позволяло размещать элементы, как и обычное окно

Ну то есть заменить DINAMIC на FULLSCREEN или DESKTOP. База для этого у Вас уже есть.


После релиза динамичного окна подумаю над этим вариантом, т.к. понимаю что он разумен в условиях маленького экрана лэптопа.
 
Реter Konow #:
Продолжу чуть позже.

KIB-код вошедших в релиз окон (продолжение):

//----------------------------------------------------------------------------------
//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/               W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/           W_NAME, "Settings example 2",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/        W_ICON, "::Images\\16x16\\Application.bmp",  
//------------------------------------------------------
/*PLACE THE NAME IN THE MIDDLE*/  NIM,
//------------------------------------------------------
//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

/*MARGINS OF THE WINDOW*/   MARGINS, 20,20,/*Х, Y*/
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,

//----------------------------------------------------------------------------------------------------------
__,  BOARD, "Choose between few options:",      GAP, 65,              BOARD, "Insert text for each option:",
//----------------------------------------------------------------------------------------------------------
GAP, 10,
//---------------------------------------------------------------------------------------------------------- 
__, H_SEP,A,   W,355,    
//----------------------------------------------------------------------------------------------------------
__, R_BUTTON,"Choose option 1", ON,    _,A_TEXT, "Option 1 is chosen.",     EDIT, "Comment 1",  W,140,

__, R_BUTTON,"Choose option 2",        _,A_TEXT, "Option 2 is chosen.",     EDIT, "Comment 2",  W,140,

__, R_BUTTON,"Choose option 3",        _,A_TEXT, "Option 3 is chosen.",     EDIT, "Comment 3",  W,140,                 
//---------------------------------------------------------------------------------------------------------- 
__, H_SEP,A,    W,355,    
//---------------------------------------------------------------------------------------------------------- 

GAP, 20,
//----------------------------------------------------------------------------------------------------------
__,  BOARD, "Choose between given options:",  GAP, 40,     BOARD, "Choose your or given options:",                 
//----------------------------------------------------------------------------------------------------------
GAP, 10,
//----------------------------------------------------------------------------------------------------------
__, C_LIST, "C_LIST 1",  H,150,                            D_LIST, "D_LIST 1",  H,150,            
//---------------------------------------------------------------------------------------------------------- 
//---------------------------------------------------------------------------------------------------------- 
__, H_SEP,A,    W,355,    
//---------------------------------------------------------------------------------------------------------- 
//----------------------------------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------------------------------------------------------------------
i, AT, _X2X, "MF", 20, _Y2Y, "MF", 20,
//---------------------------------------
i, X_GAP, 55,
i, Y_GAP, 10,
//---------------------------------------
SWITCH, "Choose option 1", "Choose option 2", "Choose option 3",    END,
//---------------------------------------
//------------------------------------------------------ 
GROUP, A,
__,L_ITEM, "L_ITEM  1",ON,
__,L_ITEM, "L_ITEM  2",
__,L_ITEM, "L_ITEM  3",
__,L_ITEM, "L_ITEM  4",
__,L_ITEM, "L_ITEM  5",
__,L_ITEM, "L_ITEM  6",
__,L_ITEM, "L_ITEM  7",
__,L_ITEM, "L_ITEM  8",
__,L_ITEM, "L_ITEM  9",
__,L_ITEM, "L_ITEM  10",
__,L_ITEM, "L_ITEM  11",
__,L_ITEM, "L_ITEM  12",
__,L_ITEM, "L_ITEM  13",
__,L_ITEM, "L_ITEM  14",
__,L_ITEM, "L_ITEM  16",
__,L_ITEM, "L_ITEM  17",
__,L_ITEM, "L_ITEM  18",
__,L_ITEM, "L_ITEM  19",
__,L_ITEM, "L_ITEM  20",

END_GROUP,
//-------------------------
i, AT, LEFT_TOP, 0,0,
//-------------------------
i, IN,"D_LIST 1",
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, "V2 group",

__, L_ITEM,"Times_New_Roman",
__, L_ITEM,"Arial",
__, L_ITEM,"Tahoma",
__, L_ITEM,"Dali",
__, L_ITEM,"BatangChe",
__, L_ITEM,"Consolas",
__, L_ITEM,"Courier",
__, L_ITEM,"Courier_New",ON,
__, L_ITEM,"DFKai_SB",
__, L_ITEM,"DotumChe",
__, L_ITEM,"FangSong",
__, L_ITEM,"Fixedsys",
__, L_ITEM,"GulimChe",
__, L_ITEM,"GungsuhChe",
__, L_ITEM,"KaiTi",


END_GROUP,
//--------------------
i, IN,"C_LIST 1",
//--------------------
i, AT, LEFT_TOP, 1,1,
//--------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------------------------------
__, D_BUTTON, "Confirm", N_FRAME_COLOR, (int)C'51,153,255', _,CWIP, GAP,7,  D_BUTTON, "Cancel", _,CWIP, 
//---------------------------------------------------------------------------------------------------------- 
END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 230, _Y2H, "D_LIST 1",  20,
//----------------------------------------------------------------------------------
//------------------------------------------------------
//FINISH THE WINDOW BY KEYWORDS END_WINDOW,
//------------------------------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 



//----------------------------------------------------------------------------------
//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/               W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/           W_NAME, "Input parameters:",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/        W_ICON, "::Images\\16x16\\Tune.bmp", 
//------------------------------------------------------
/*PLACE THE NAME IN THE MIDDLE*/  NIM,
//------------------------------------------------------
/*SET COLOR OF THE BACKGROUND*/   "MF", N_COLOR,(int)C'255,255,255',
//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/         OPEN_ON_INIT,  /*(OOI)*/

/*MARGINS OF THE WINDOW*/         MARGINS, 15,15,/*Х, Y*/
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//-------------------------------------------------
__,V_BOX, "V1", W,272, _,H,200, _,N_FRAME,1,
//-------------------------------------------------
END_GROUP,
//-----------------------------------
 i, AT, _X2X, "MF", 3, _Y2Y, "MF", 5,
//-----------------------------------

//-------------------------------------------------
GROUP, A, 
//-------------------------------------------------
IS_TABLE, "Input parameters table",
//-------------------------------------------------
__, T_HEADER, "Variable",           C_HEADER,"Value",
//-------------------------------------------------
__, R_HEADER,"MAGICB",              EDIT,"MAGICB:", 
//-------------------------------------------------
__, R_HEADER,"MAGICS",              EDIT,"MAGICS:",
//-------------------------------------------------
__, R_HEADER,"s9",                  EDIT,"s9:",
//-------------------------------------------------
__, R_HEADER,"Hours_to_GMT_Offset", EDIT,"Hours_to_GMT_Offset:",
//-------------------------------------------------
__, R_HEADER,"Hours",               C_LIST,"Hours:",
//-------------------------------------------------
__, R_HEADER,"Begin_hour",          EDIT,"Begin_hour:",
//-------------------------------------------------
__, R_HEADER,"End_hour",            EDIT,"End_hour:",
//-------------------------------------------------
__, R_HEADER,"Comments",            EDIT,"Comments:",
//-------------------------------------------------

END_GROUP,
//------------------------------------
 i, AT, LEFT_TOP,1,1,
//------------------------------------
 i,IN,"V1",
//------------------------------------
 i,Y_GAP,-1,
//------------------------------------
 i,X_GAP,-1,
//------------------------------------

//------------------------------------
 i, IS_ZEBRA_STYLE,
//------------------------------------

//-----------------------------------------------------------------------------------------------------------------------------
 i, T_HEADERS,  FONT_SIZE,9, W,180,  text,_A1_,_X2X,  text,_C1_,10,                               END,
//-----------------------------------------------------------------------------------------------------------------------------
 i, R_HEADERS,  FONT_SIZE,9, H,22,   text,_A1_,_X2X,  text,_C1_,10, text,_C2_,1,                  END,
//-----------------------------------------------------------------------------------------------------------------------------
 i, C_HEADERS,  FONT_SIZE,9, W,90,   text,_A1_,_X2X,  text,_C1_,10, N_COLOR,(int)C'155,255,255',  END,
//-----------------------------------------------------------------------------------------------------------------------------
 i, EDITS,      FONT_SIZE,9, W,90,   text,_C2_,1,   POINTED,0,                                    END,
//-----------------------------------------------------------------------------------------------------------------------------
 i, C_LISTS,   FONT_SIZE,9, 
               //-----------------------------
               W,90,   
               //-----------------------------
               text,_C2_,1,   
               //-----------------------------
               POINTED,0,  
               //-----------------------------
               bar,NG_LINES,0, 
               //-----------------------------
               bar,NG_STEP,0,  
               //-----------------------------
               bar,AG_LINES,0, 
               //-----------------------------
               bar,AG_STEP,0,    
               //-----------------------------
               END,
//-----------------------------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
GROUP, A,
//-------------------------------------------------
__,V_BOX, "V2", W,272, _,H,200, _,N_FRAME,1,
//-------------------------------------------------
END_GROUP,
//-----------------------------------
 i, AT, _X2W, "V1", 10, _Y2Y, "MF", 5,
//-----------------------------------

//-------------------------------------------------
GROUP, A, IS_TABLE, "Input parameters table 2",
//-------------------------------------------------
//-------------------------------------------------
__, T_HEADER, "Variable ",     C_HEADER,"Value ",
//-------------------------------------------------
//-------------------------------------------------
__, R_HEADER,"SELL",           C_LIST,  "SELL:",
//-------------------------------------------------
__, R_HEADER,"BUY",            C_LIST,  "BUY:",
//-------------------------------------------------
__, R_HEADER,"s7",             EDIT,    "s7:",
//-------------------------------------------------
__, R_HEADER,"LotMax",         EDIT,    "LotMax:",
//-------------------------------------------------
__, R_HEADER,"OnOffLock",      C_LIST,  "OnOffLock:",
//-------------------------------------------------
__, R_HEADER,"LockLevel",      EDIT,    "LockLevel:",
//-------------------------------------------------
__, R_HEADER,"AxelOption",     C_LIST,  "AxelOption:",
//-------------------------------------------------
__, R_HEADER,"LimLossMoney",   EDIT,    "LimLossMoney:",
//-------------------------------------------------

//-------------------------------------------------
END_GROUP,
//-------------------------------------------------
i, AT, LEFT_TOP,1,1,
//-----------------------
i,IN,"V2",
//-----------------------
i,Y_GAP,-1,
//-----------------------
i,X_GAP,-1,
//-----------------------

//------------------------------------
 i, IS_ZEBRA_STYLE,
//------------------------------------

//-----------------------------------------------------------------------------------------------------------------------------
 i, T_HEADERS,  FONT_SIZE,9, W,180,  text,_A1_,_X2X,  text,_C1_,10,                               END,
//-----------------------------------------------------------------------------------------------------------------------------
 i, R_HEADERS,  FONT_SIZE,9, H,22,   text,_A1_,_X2X,  text,_C1_,10, text,_C2_,1,                  END,
//-----------------------------------------------------------------------------------------------------------------------------
 i, C_HEADERS,  FONT_SIZE,9, W,90,   text,_A1_,_X2X,  text,_C1_,10, N_COLOR,(int)C'155,255,255',  END,
//-----------------------------------------------------------------------------------------------------------------------------
 i, EDITS,      FONT_SIZE,9, W,90,   text,_C2_,1,   POINTED,0,                                    END,
//-----------------------------------------------------------------------------------------------------------------------------
 i, C_LISTS,   FONT_SIZE,9, 
               //-----------------------------
               W,90,   
               //-----------------------------
               text,_C2_,1,   
               //-----------------------------
               POINTED,0,  
               //-----------------------------
               bar,NG_LINES,0, 
               //-----------------------------
               bar,NG_STEP,0,  
               //-----------------------------
               bar,AG_LINES,0, 
               //-----------------------------
               bar,AG_STEP,0,    
               //-----------------------------
               END,
//-----------------------------------------------------------------------------------------------------------------------------

//------------------------------------
GROUP,A,
//----------------------
__,L_ITEM,"true",
//----------------------
__,L_ITEM,"false",
//----------------------
END_GROUP,
//------------------------------------
i, IN, "Hours:",
i, AT, LEFT_TOP, 0,0,
//------------------------------------

//------------------------------------
GROUP,A,
//-------------------
__,L_ITEM,"true ",
//-------------------
__,L_ITEM,"false ",
//-------------------
END_GROUP,
//------------------------------------
i, IN, "GameOn:",
//-------------------
i, AT, LEFT_TOP, 0,0,
//------------------------------------

//------------------------------------
GROUP,A,
//--------------------
__,L_ITEM,"true  ",
//--------------------
__,L_ITEM,"false  ",
//--------------------
END_GROUP,
//------------------------------------
i, IN, "OnOffUnLine:",
//------------------------------------
i, AT, LEFT_TOP, 0,0,
//------------------------------------
END_WINDOW,
//--------------------------------------------------------
 


//------------------------------------------------------ 
//DECLARE A NEW WINDOW
//------------------------------------------------------ 
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/             W_TYPE, DIALOG,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/         W_NAME, "Risky managment!", 
//------------------------------------------------------
/*SET WINDOW'S CAPTION*/        CAPTION,"*Warning*", 
//------------------------------------------------------
/*NAME (CAPTION)IN THE MIDDLE*/ NIM,  
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/      W_ICON, "::Images\\16x16\\Warning.bmp",  
//------------------------------------------------------
/*ONLY CLOSING BUTTON*/         ONLY_CLOSING, 
//------------------------------------------------------
/*WINDOW ALWAYS ON TOP*/        ALWAYS_ON_TOP, 
//------------------------------------------------------
/*OPEN WINDOW WITH A SOUND*/    OPENING_SOUND,"::Sounds\\Windows Critical Stop.wav", 
//------------------------------------------------------ 
/*WINDOW OPENS AT START*/       //OPEN_ON_INIT,  /*(OOI)*/
//------------------------------------------------------
/*LOCK WINDOWS IF OPENED*/      LOCKS_WINDOWS, ALL_WINDOWS,   
//------------------------------------------------------
/*MARGINS OF THE WINDOW*/       MARGINS, 20,20,/*Х, Y*/
//------------------------------------------------------ 

//----------------------------------------------------------------------------------
GROUP, A,
//--------------------------------------------
__, T_BOX, "T1", TEXT,
                //--------------------------------
                "Risky settings can cause loss.",
                //--------------------------------
                END,
//--------------------------------------------
END_GROUP,
//--------------------------------------------
i, AT, _X2X, "MF", 1, _Y2Y, "MF", 1,
//--------------------------------------------
i, T_BOXES,
            text,X_CORRECTION,55,
            //----------------------------
            text,Y_CORRECTION,10,
            //----------------------------
            text, N_COLOR, (uint)clrRed,
            //----------------------------
            X_SIZE_CORRECTION,15,
            //----------------------------
            Y_SIZE_CORRECTION,20,
            //----------------------------
            TEXT_FONT, "Arial Black",
            //----------------------------
            FONT_SIZE,12,
            //----------------------------
            W, 200,  H, 70,
            //----------------------------
            END,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//---------------------------------------------------
__, LABEL,A, N_LABEL,"::Images\\32x32\\Warning.bmp",
//---------------------------------------------------
END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------------------------------- 

//--------------------------------------------------- 
GROUP, A,
//---------------------------------------------------
__,CHECKBOX, "Don't show this warning again.", 
//---------------------------------------------------
END_GROUP,
//---------------------------------------------------
i, AT, _X2X, "MF", 10, _Y2H, "T1", 30,
//--------------------------------------------------- 

//--------------------------------------------------- 
GROUP, A,
//---------------------------------------------------
__, D_BUTTON, "Ok", N_FRAME_COLOR, (int)C'51,153,255',_,CWIP, 
//---------------------------------------------------                       
                   GAP,7, 
//---------------------------------------------------                  
   D_BUTTON, "Cancel", _,CWIP, /*(CLOSE WINDOW IF PRESSED)*/
//---------------------------------------------------
END_GROUP,
//------------------------------------------------------------------
i, AT, _X2X, "MF", 200, _Y2Y, "Don't show this warning again.",  -5,
//------------------------------------------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 

Продожу выкладывать код нескольких окон в день (чтобы было легче разобраться).

Готовлю релиз на следующую пятницу-субботу. 

Основные поставленные задачи:

  • Реализовать программное управление элементами и окнами со стороны пользовательского приложения.
  • Подготовить/отладить функционал необходимый для работы пользователя с таблицами.
  • Исправить серьезные баги с вкладками и таскбаром.
  • Исправить мелкие баги.


  • Cделать так, чтобы движок в момент "симбиозной" компиляции с польз.программой загружал только выбранные ресурсы.