Crowdsourced GUI. Open beta testing. - page 6

 

These are the basics. A set of rules that you must know. Here's the file. (there's one in the assembly too.)

//+------------------------------------------------------------------+
//|                                                           УРОК 1 |
//|                                                      Peter Konow |
//|                                                                  |
//+------------------------------------------------------------------+
//---------------------------------
//УРОК 1.   
//---------------------------------

//---------------------------------
//СОДЕРЖАНИЕ:
//---------------------------------
1.   СОЗДАНИЕ ФОРМЫ ОКНА.

2.   ПРАВИЛА СОЗДАНИЯ ГРУПП ЭЛЕМЕНТОВ.

3.   ПРАВИЛА СОЗДАНИЯ ЭЛЕМЕНТОВ.

4.   ТИПЫ ЭЛЕМЕНТОВ.
//---------------------------------



//--------------------------------------------------------------------------------------------------+
//1. СОЗДАНИЕ ФОРМЫ ОКНА: 
//--------------------------------------------------------------------------------------------------+ 
ПОСЛЕДОВАТЕЛЬНОСТЬ КОММАНД:

1. ОБЪЯВЛЯЕМ НОВОЕ ОКНО: NEW_WINDOW,

2. ИМЕНУЕМ ОКНО:         W_NAME, "Window 1",

3. ВЫБИРАЕМ ИКОНКУ ОКНА ИЗ ОКНА ИКОНОК КОНСТРУКТОРА (ВЫЗЫВАЕТСЯ ДАБЛ-КЛИКОМ НА ГРАФИК) И ПРОПИСЫВАЕМ : W_LABEL, "::Images\\some_icon.bmp", 

4. УСТАНАВЛИВАЕМ ТИП ОКНА -  W_TYPE, SETTINGS, (ИЛИ DINAMIC, MENU, DIALOG).

//--------------------------------------------------------------------------------------------------+ 
NEW_WINDOW,     W_NAME, "Window 1",      W_LABEL, "::Images\\some_icon.bmp",       W_TYPE, SETTINGS,
//--------------------------------------------------------------------------------------------------+

5. ПОСЛЕ ОБЪЯВЛЕНИЯ ОКНА, ЗАВЕРШАЕМ ЕГО КОММАНДОЙ END_WINDOW,
//--------------------------------------------------------------------------------------------------+


//---------------------------------------------------------------------------------------------------
ОБЪЯВЛЕНИЕ ГРУПП ЭЛЕМЕНТОВ:
//---------------------------------------------------------------------------------------------------
1. ВСЕ ЭЛЕМЕНТЫ СУЩЕСТВУЮТ ТОЛЬКО В СВОИХ ГРУППАХ.

2. ВСЕ ГРУППЫ ОБЪЯВЛЯЮТСЯ КОММАНДОЙ GROUP И ОБЯЗАНЫ ИМЕТЬ ИМЯ. (ЕСЛИ ИМЯ НЕСУЩЕСТВЕННО, СТАВИТЬ А. без кавычек)

   GROUP, "Main tabs", или GROUP, A,


3. ВСЕ ГРУППЫ ЗАВЕРШАЮТСЯ КОММАНДОЙ END_GROUP.

4. ПОСЛЕ END_GROUP ПИШЕТСЯ ПОЗИЦИЯ ГРУППЫ И СВОЙСТВА ЭЛЕМЕНТОВ.

5. ГРУППА ОБЯЗАНЫ БЫТЬ ПОЗИЦИОНИРОВАНА. ДЛЯ ЭТОГО ИСПОЛЬЗУЕТСЯ ПРОСТОЙ МЕТОД:

i,(символ группы), AT, (ПОЗИЦИЯ) _Х2 Х, (ТИП ПРИВЯЗКИ)  "name", (ИМЯ ОБЪЕКТА ПРИВЯЗКИ) 0 (ПОПРАВКА) И ТОЖЕ САМОЕ ДЛЯ ОСИ Y. 
//--------------------------------------------------------------------------------------------------+ 
         i, AT, _X2X, "MF", 5, _Y2Y, "MF",5,   ("MF" - ОЗНАЧАЕТ MAIN FRAME ОКНА,  5 - ПОПРАВКА)
//--------------------------------------------------------------------------------------------------+   
       
//--------------------------------------------------------------------------------------------------+
ПРИНЦИПЫ ПОСТРОЕНИЯ ГРУПП:

1. ЖЕЛАТЕЛЬНО, СТРОИТЬ ТАБЛИЧНУЮ РАСКЛАДКУ ЭЛЕМЕНТОВ ВНУТРИ ГРУПП - СТАВИТЬ РАВНОЕ КОЛИЧЕСТВО ЭЛЕМЕНТОВ В РЯДУ, - ОДНАКО, МОГУТ БЫТЬ ИСКЛЮЧЕНИЯ.

2. СТРОКА ОБЪЯВЛЕНИЙ ЭЛЕМЕНТОВ - ЭТО РЯД. (Ряд начинается со знака __,). 

3. КАЖДЫЙ ЭЛЕМЕНТ ОБЯЗАН ИМЕТЬ ИМЯ. ЭТО МОЖЕТ БЫТЬ ИМЯ СОБСТВЕННОЕ ИЛИ АБСТРАКТНОЕ A. ИМЯ СОБСТВЕННОЕ СТАВИТСЯ В КАВЫЧКИ. 

4. ВНУТРИ СТРОКИ ОБЪЯВЛЯЕНИЯ ЭЛЕМЕНТОВ, МОЖНО ПРОПИСЫВАТЬ УСТАНОВКИ ИХ ИНДИВИДУАЛЬНЫХ СВОЙСТВ. 

5. ПРИ УСТАНОВКИ СВОЙСТВ ВНУТРИ СТРОКИ ЭЛЕМЕНТОВ, СВОЙСТВА ПЕРЕЧЕСЛЯЮТСЯ ЧЕРЕЗ ЗНАК _, КОТОРЫЙ ОТСЫЛАЕТ КОНСТРУКТОР К НУЖНОМУ ЭЛЕМЕНТУ. 

__, M_ITEM, "M_ITEM 1", N_LABEL,"::Images\\some_icon.bmp", _,N_COLOR,(int)clrWhite,_,NB_COLOR,(int)clrWhite,_,AB_COLOR,(int)clrWhite, _,KC_TEXT,"Cntrl+Shift",

   В ИТОГЕ ПОЛУЧАЕТСЯ ЦЕПОЧКА СВОЙСТВ. ЕЕ МОЖНО ПЕРЕНОСИТЬ МЕЖДУ ЭЛЕМЕНТАМИ ИЛИ КОПИРОВАТЬ.
   
6. ДЛЯ ЗАДАНИЯ ДИСТАНЦИИ МЕЖДУ ЭЛЕМЕНТАМИ В ГРУППЕ ИСПОЛЬЗУЙТЕ СЛОВА X_GAP, Y_GAP. СТАВЬТЕ ИХ ПОСЛЕ ЗАВЕРШЕНИЯ ГРУППЫ.
//-------------------
   i, X_GAP, 5,
   i, Y_GAP, 5,
//-------------------  
//--------------------------------------------------------------------------------------------------+

 !!! КРАЙНЕ ВАЖНО: ЗАПРЕЩЕНО ДАВАТЬ ЭЛЕМЕНТАМ ОДИНАКОВЫЕ НАЗВАНИЯ ВНУТРИ ОДНОГО ОКНА. 
                   ЗАПРЕЩЕНО ДАВАТЬ ГРУППАМ ОДИНАКОВЫЕ НАЗВАНИЯ ВНУТРИ ОДНОГО ОКНА.
                   
                   ИСПОЛЬЗОВАНИЯ A ВМЕСТО ИМЕНИ НЕ ПРИВОДИТ К СОВПАДЕНИЮ ИМЕН.
                   //----------------------------------------------------------------
                   
 ПРИМЕР ПОСТРОЕНИЯ ГРУППЫ:                   
//--------------------------------------------------------------------------------------------------+
GROUP, A,

__, CHECKBOX, "Checkbox 1",  CHECKBOX, "Checkbox 2", 

__, CHECKBOX, "Checkbox 3",  CHECKBOX, "Checkbox 4",

__, CHECKBOX, "Checkbox 5",  CHECKBOX, "Checkbox 6",

__, CHECKBOX, "Checkbox 7",  CHECKBOX, "Checkbox 8",  

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
i, X_GAP, 30,
i, Y_GAP, 20,
//--------------------------------------------------------------------------------------------------+


!!! НЕ ЗАБЫВАЙТЕ ЗАВЕРШАТЬ ОКНА КОММАНДОЙ END_WINDOW И ГРУППЫ END_GROUP.



НИЖЕ ПРИВЕДЕНЫ ТИПЫ ЭЛЕМЕНТОВ:

//-------------------------------------------------------------
 M_ITEM    ЭЛЕМЕНТ ОКОН МЕНЮ.                                 
//-------------------------------------------------------------
 M_SEP     РАЗДЕЛИТЕЛЬ ПУНКТОВ МЕНЮ. СТАВИТСЯ МЕЖДУ НИМИ В ГРУППЕ.                                  
//-------------------------------------------------------------
 CHECKBOX  ОБЫЧНЫЙ ЧЕКБОКС.                                  
//-------------------------------------------------------------
 R_BUTTON  ОБЫЧНАЯ РАДИО-КНОПКА.                                   
//-------------------------------------------------------------
 S_EDIT    ПОЛЕ ВВОДА С КНОПКАМИ. СЛУЖИТ ДЛЯ ПЕРЕКЛЮЧЕНИЯ ЦИФР.                                  
//-------------------------------------------------------------
 D_LIST    ВЫПАДАЮЩИЙ СПИСОК С ПУНКТАМИ С ПОЛЕМ ВВОДА.                                   
//-------------------------------------------------------------
 C_LIST    ВЫПАДАЮЩИЙ СПИСОК БЕЗ БЕЗ ПОЛЯ ВВОДА.                                    
//-------------------------------------------------------------
 G_FRAME   РАМКА ДЛЯ ГРУППЫ С НАЗВАНИЕМ. ИМЕЕТ СВОИ ПРАВИЛА ПОЗИЦИОНИРОВАНИЯ.                                 
//-------------------------------------------------------------
 H_SEP     ГОРИЗОНТАЛЬНЫЙ РАЗДЕЛИТЕЛЬ. ЛИНИЯ ПОХОЖАЯ НА БОРОЗДУ.                                  
//-------------------------------------------------------------
 V_SEP     ВЕРТИКАЛЬНЫЙ РАЗДЕЛИТЕЛЬ.                                   
//-------------------------------------------------------------
 BUTTON    ОБЫЧНАЯ КНОПКА. ИМЕЕТ ТЕКСТ И ИКОНКУ.                                    
//------------------------------------------------------------- 
 TB_BUTTON ТИП КНОПКИ. ПРИЛИПАЕТ ПРИ НАВЕДЕНИЯ КУРСОРА. ИМЕЕТ ТЕКСТ И ИКОНКУ.  
 //------------------------------------------------------------- 
 D_BUTTON  КНОПКА ДЛЯ ДИАЛОГОВЫХ ОКОН - ДА, НЕТ, ОТМЕНА...                                  
//-------------------------------------------------------------
 I_BUTTON  ТИП КНОПКИ.   ИМЕЕТ ТЕКСТ И ИКОНКУ.                                
//-------------------------------------------------------------
SQ_BUTTON  ТИП КНОПКИ.   
//-------------------------------------------------------------
 EDIT      ОБЫЧНОЕ ПОЛЕ ВВОДА ДЛЯ ЛЮБЫХ ТЕКСТОВ.                                  
//-------------------------------------------------------------
 V_BOX     КАНВАС С ПРОКРУТКОЙ - НЕСЕТ ЛЮБЫЕ ГРУППЫ ЭЛЕМЕНТОВ.                                 
//-------------------------------------------------------------
 H_SLIDER  ГОРИЗОНТАЛЬНЫЙ СЛАЙДЕР. МОЖЕТ ВКЛЮЧАТЬСЯ ТАБЛО С ЦИФРАМИ.                                    
//-------------------------------------------------------------
 V_SLIDER  ВЕРТИКАЛЬНЫЙ СЛАЙДЕР. МОЖЕТ ВКЛЮЧАСТСЯ ТАБЛО С ЦИФРАМИ.                                 
//-------------------------------------------------------------
 T_HEADER  ЗАГОЛОВОЧНАЯ ЯЧЕЙКА ЛЮБЫХ ТАБЛИЦ. НИГДЕ БОЛЬШЕ НЕ ИСПОЛЬЗУЕТСЯ.                                   
//-------------------------------------------------------------
 R_HEADER  ЗАГОЛОВОЧНАЯ ЯЧЕЙКА РЯДОВ ТАБЛИЦ. НИГДЕ БОЛЬШЕ НЕ ИСПОЛЬЗУЕТСЯ.                                 
//-------------------------------------------------------------
 C_HEADER  ЗАГОЛОВОЧНАЯ ЯЧЕЙКА КОЛОНОК ТАБЛИЦ. НИГДЕ БОЛЬШЕ НЕ ИСПОЛЬЗУЕТСЯ.                                   
//-------------------------------------------------------------
 CELL      ОБЫКНОВЕННАЯ ЯЧЕЙКА. ИМЕЕТ ТЕКСТ И ИКОНКУ.                                   
//-------------------------------------------------------------
 P_BAR     ПРОГРЕСС-БАР.                                    
//-------------------------------------------------------------
 FRAME    ОБЫКНОВЕННАЯ РАМКА.                                     
//-------------------------------------------------------------
 H_TAB    ГОРИЗОНТАЛЬНАЯ ВКЛАДКА. УПРАВЛЯЕТ ЯВЛЕНИЕМ ГРУПП.                                     
//-------------------------------------------------------------
 V_TAB    ГОРИЗОНТАЛЬНАЯ ВКЛАДКА. УПРАВЛЯЕТ ЯВЛЕНИЕМ ГРУПП.                                     
//-------------------------------------------------------------
 H_LINE   ГОРИЗОНТАЛЬНАЯ ЛИНИЯ.                                    
//-------------------------------------------------------------
 V_LINE   ВЕРТИКАЛЬНАЯ ЛИНИЯ.                                   
//-------------------------------------------------------------
 LABEL    ИКОНКА.                                    
//-------------------------------------------------------------
 REC      ПРЯМОУГОЛЬНИК.                                     
//-------------------------------------------------------------
 M_TAB    ВКЛАДКА ГЛАВНОГО ОКНА. ОТКРЫВАЕТ ОКНА МЕНЮ.                                     
//-------------------------------------------------------------
 TIP      ВСПЛЫВАЮЩАЯ ПОДСКАЗКА.                                 
//-------------------------------------------------------------
 L_ITEM   ПУНКТ ВЫПАДАЮЩЕГО И ОБЫЧНОГО СПИСКА.                                     
//-------------------------------------------------------------
 BOARD    ОБЫКНОВЕННАЯ ТЕКСТОВАЯ МЕТКА.                                                              
//-------------------------------------------------------------                                  
T_CELL    ЯЧЕЙКА ТАБЛИЦЫ С ПРЕДОПРЕДЕЛЕННЫМ ТЕКСТОМ.                                    
//-------------------------------------------------------------
M_CHECKBOX ЧЕКБОКС ДЛЯ ОКНА МЕНЮ.                                  
//-------------------------------------------------------------
TV_ITEM   ПУНКТ ДРЕВОВИДНОГО СПИСКА.                                  
//-------------------------------------------------------------
TV_MENU   МЕНЮ ДРЕВОВИДНОГО СПИСКА.                                  
//-------------------------------------------------------------
T_FOLDER  СВОРАЧИВАТЕЛЬ ТАБЛИЦ.                                    
//-------------------------------------------------------------
G_FOLDER  СВОРАЧИВАТЕЛЬ ГРУПП.                                 
//-------------------------------------------------------------
I_TEXT    ТИП ПУНКТА СПИСКОВ.                                  
//------------------------------------------------------------- 
T_BOX     МНОГОСТРОЧНЫЙ ТЕКСТОВЫЙ БЛОК.                                       
//-------------------------------------------------------------
VALUE     ТЕКСТОВАЯ МЕТКА С ПАРАМЕТРОМ. ПЕРЕДАЕТ ЗНАЧЕНИЕ.                                    
//-------------------------------------------------------------
D_BAR    ВЕРТИКАЛЬНЫЙ ПРОГРЕСС-БАР. ИСПОЛЬЗУЕТСЯ В ДИАГРАММАХ.                                         
//-------------------------------------------------------------
                         
/**************************************************************

          
Документация по MQL5: Основы языка
Документация по MQL5: Основы языка
  • www.mql5.com
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...
Files:
hiqz_1_.mqh  24 kb
 
In the next lesson, the types of element properties.
 
00:03
Peter, Hi, there are some comments. When I press the left mouse button and hold it down in the pressed state, when I release it from the window area, the button stays pressed, this should not be the case. And when inside the window, I take the cursor with the left mouse button held down out of the button field, the button remains active and when I release the key outside the button field, it should not be like that either. The button is pressed, it works when released, if you change your mind, remove it from the button field and it does not work, but it does work for you
 
Rafil Nurmukhametov:
00:03
When I press and hold down the left mouse button and release it from the window area, the button stays pressed, this should not be the case. And when inside the window, when I release the cursor with the left mouse button held down from the button field, the button remains active and when I release the button outside the button field, this should not be the case either. The button is pressed, it is triggered on release, if you change your mind, you remove it from the button field and it does not work, but in your case it does.

There's no problem inside the window area. Rafil, set your button's _,FIC property, and try again.

__,BUTTON, "Button",_,FIC,

Means: Fixed If Сlisked

 
Реter Konow:

There is no problem inside the window area. Rafil, set the _,FIC property to your button and try again.

OK, only you haven't posted a lesson on properties yet, sorry, I see an example...
 
Rafil Nurmukhametov:
Good, but you haven't posted a lesson on properties yet.

I'll post it today. In about an hour. Actually, I have already solved this problem. Buttons are only pressed/unpressed if the push was on them. In the window area it works. Outside the window area it worked, but now I see it has stopped. Needs to be fixed.

Button may or may not lock from pressing. If you want it to be latched - put property_,FIC,

 
Rafil, install version 1.4 and the Microsoft JhengHei Light font. Judging by the tabs, you have version 1.3 and don't have the right font.
 

By the way, pay attention to the properties of your tabs. They are here:


//--------------------------------------------------------------------------------------------------------------
//УСТАНАВЛИВАЕМ СВОЙСТВА ВКЛАДОК: ЦВЕТ В АКТИВИРОВАННОМ И НЕЙТРАЛЬНОМ СОСТОЯНИИ, ТИП РАМКИ, ПАРАМЕТРЫ ГРАДИЕНТА,
// ЦВЕТ ПОД КУРСОРОМ, РАЗМЕР ШРИФТА.
//--------------------------------------------------------------------------------------------------------------
i, H_TABS,// FRAME_TYPE, _dab,

 AH_COLOR, (int)C'255,255,255', A_COLOR, (int)C'255,255,255', N_COLOR, (int)C'250,250,250', TENURED,
//----------------------------
 P_COLOR,(int)C'236,244,252',  _,N_FRAME,1,  _,A_FRAME,1,  _,NP_FRAME,1, NPG_LINES,20, NPG_STEP,1, NG_LINES,20, NG_STEP,1,  FONT_SIZE, 12,     
 
 END,
//----------------------------

In pink:

  • Colour in activated state under cursor.
  • Colour in activated state.
  • Colour in neutral state.
  • Colour under cursor (in any state).

In green:

  • Frame in neutral state.
  • Frame in activated state.
  • Frame in neutral state under cursor.

In blue:

  • Number of gradient lines in neutral state under the cursor.
  • Gradient step for this state.
  • Number of gradient lines for the neutral state.
  • Gradient step for this state.
You can remove it and the tabs become normal. The FONT_SIZE property changes the font size.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д.  Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
 

Element properties. Part 1 - the basics. Part 2 - examples.

 //+------------------------------------------------------------------+
//|                                         Lesson 2. Properties.mqh |
//|                                                      Peter Konow |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
//----------------------------------------------
//УРОК 2. СВОЙСТВА ОКОН, ЭЛЕМЕНТОВ И ОБЪЕКТОВ. ОПЕРАТОРЫ SWITCH, BLOCKS. 
//----------------------------------------------

//---------------------------------
//СОДЕРЖАНИЕ:
//---------------------------------
1 .   КЛАССИФИКАЦИЯ СВОЙСТВ.

2 .   СВОЙСТВА ОКОН. 

3 .   СВОЙСТВА ЭЛЕМЕНТОВ.

4 .   СВОЙСТВА ОБЪЕКТОВ.

5 .   ПРОСТЫЕ ОПЕРАТОРЫ.

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


1 .  СВОЙСТВА ДЕЛЯТСЯ НА ГРУППЫ ПО НЕСКОЛЬКИМ КРИТЕРИЯМ:
//============================================================================================================================
   a) ИНДИВИДУАЛЬНЫЕ СВОЙСТВА - УСТАНАВЛИВАЮТСЯ КАЖДОМУ ЭЛЕМЕНТУ ОТДЕЛЬНО ВНУТРИ СТРОКИ ЕГО ОБЪЯВЛЕНИЯ ИЛИ ЗА ПРЕДЕЛАМИ ЕГО ГРУППЫ:
   
//---------------------------------------------
GROUP, A,  

__,REC, "R1" , W, 600 , _,H, 300 ,_,N_FRAME, 1 , _,N_COLOR,( int ) C'255,255,255' , <--  ЦЕПОЧКА ИНДИВИДУАЛЬНЫХ СВОЙСТВ ВНУТРИ СТРОКИ ОБЪЯВЛЕНИЯ ЭЛЕМЕНТА.
                                                                             (ПЕРЕЧИСЛЕНИЕ ЧЕРЕЗ ЗНАК _, ОБЯЗАТЕЛЬНО. КРОМЕ ПЕРВОГО ОТ ИМЕНИ ЭЛЕМЕНТА).
END_GROUP,
//-----------------------------------
   
//============================================================================================================================
   b) ОБЩИЕ СВОЙСТВА ОДНОТИПНЫХ ЭЛЕМЕНТОВ В ГРУППЕ - УСТНАВЛИВАЮТСЯ ВСЕМ ЭЛЕМЕНТАМ ОДНОГО ТИПА В ГРУППЕ.
   
//-------------------------------------------------------
 GROUP, "Main tabs" ,

__, H_TAB, "Цветовые настройки" ,ON,   H_TAB, "Индикаторы" ,  H_TAB, "Горячие клавиши" ,  

END_GROUP,
//----------------------------
//ПОЗИЦИЯ ГРУППЫ НА КАНВАСЕ ОКНА.
//----------------------------
i, AT, _X2X, "MF" , 5 , _Y2Y, "MF" , 5 ,
//----------------------------
   
i, H_TABS,      <----  ОБЪЯВЛЯЕМ НАЧАЛО УСТАНОВКИ СВОЙСТВ ОДНОТИПНОМУ МНОЖЕСТВУ ЭЛЕМЕНТОВ 
                                         (ПИШЕМ НАЗВАНИЕ ЭЛЕМЕНТА ВО МНОЖЕСТВЕННОМ ЧИСЛЕ).
//----------------------------
 AH_COLOR, ( int ) C'255,255,255' , 
 A_COLOR,  ( int ) C'255,255,255' , 
 N_COLOR,  ( int ) C'250,250,250' , 
 P_COLOR,  ( int ) C'236,244,252' ,  
 N_FRAME,   1 ,  
 A_FRAME,   1 ,                                <----     УСТАНОВКА СВОЙСТВ ГРУППЕ ВКЛАДОК.
 NP_FRAME,   1 , 
 NPG_LINES, 20 , 
 NPG_STEP,   1 ,                                          
 NG_LINES,   20 , 
 NG_STEP,   1 ,  
 FONT_SIZE, 12 ,                                        (ПОРЯДОК ПЕРЕЧИСЛЕНИЯ НЕ ИМЕЕТ ЗНАЧЕНИЯ).
//----------------------------
 END,                                         <----     ЗАВЕРШАЕМ МАССОВУЮ УСТАНОВКУ СВОЙСТВ.     
//----------------------------
//============================================================================================================================

    c) СВОЙСТВА, ПЕРЕД КОТОРЫМИ СТАВИТСЯ ПРЕФИКС СОСТОЯНИЯ.   СУЩЕСТВУЕТ 8 (ВОСЕМЬ) ОСНОВНЫХ СОСТОЯНИЙ ЭЛЕМЕНТА:
        
     //--------------------------------------------------------------------------------------------   
         1 ) НЕЙТРАЛЬНОЕ СОСТОЯНИЕ                                                           - ПРЕФИКС N_.
        
         2 ) НЕЙТРАЛЬНОЕ В ФОКУСЕ СОСТОЯНИЕ - ЭЛЕМЕНТ ВЫДЕЛЕН, НО НЕ АКТИВИРОВАН             - ПРЕФИКС NH_.
        
         3 ) АКТИВИРОВАННОЕ СОСТОЯНИЕ                                                        - ПРЕФИКС A_.
        
         4 ) АКТИВИРОВАННОЕ В ФОКУСЕ СОСТОЯНИЕ - ЭЛЕМЕНТ АКТИВИРОВАН И ВЫДЕЛЕН ПОЛЬЗОВАТЕЛЕМ - ПРЕФИКС AH_.
        
         5 ) БЛОКИРОВАННОЕ НЕЙТРАЛЬНОЕ СОСТОЯНИЕ                                             - ПРЕФИКС NB_.
        
         6 ) БЛОКИРОВАННОЕ АКТИВИРОВАННОЕ СОСТОЯНИЕ                                          - ПРЕФИКС AB_.
        
         7 ) НЕЙТРАЛЬНОЕ ПОД КУРСОРОМ                                                        - ПРЕФИКС NP_.
        
         8 ) АКТИВИРОВАННОЕ ПОД КУРСОРОМ                                                     - ПРЕФИКС AP_.
        
     //-----------------------------------------------    
    СПИСОК СВОЙСТВ ОПРЕДЕЛЯЕМЫХ СОСТОЯНИЕМ ЭЛЕМЕНТОВ:
     //-----------------------------------------------
     
       1 ) ЦВЕТОВЫЕ СВОЙСТВА: ОСНОВАНИЯ ЭЛЕМЕНТОВ И ТЕКСТЫ. 
       
          N_COLOR, A_COLOR, NH_COLOR, AH_COLOR, NB_COLOR, AB_COLOR, NP_COLOR, AP_COLOR.
       
          РАМКИ ОСНОВАНИЙ ЭЛЕМЕНТОВ:
       
          N_FRAME_COLOR, A_FRAME_COLOR, NH_FRAME_COLOR, AH_FRAME_COLOR, NP_FRAME_COLOR, AP_FRAME_COLOR.
       
           //------------------------------------------------------------------------------------------
          (ДЛЯ УСТАНОВКИ ЭТИХ СВОЙСТВ ТЕКСТАМ ЭЛЕМЕНТОВ ИЛИ ДРУГИМ СОСТАВНЫМ ДЕТАЛЯМ, ПИШУТСЯ ИХ НАЗВАНИЯ: text, label, canvas, bar)
          
           _,text,A_COLOR,( int ) C'255,255,255' , <-- ЦВЕТ БУДЕТ УСТНОВЛЕН ТЕКСТУ, А НЕ ОСНОВАНИЮ.
          
       //------------------------------------------------------------------------------------------   
       2 ) ЗВУКОВЫЕ СВОЙСТВА - A_SOUND, N_SOUND   <--  ЗВУК НА НАЖАТИИ/ОТЖАТИИ ЭЛЕМЕНТА.  
          
          _,A_SOUND, "::Sounds\\Windows Ding.wav" , _,N_SOUND, "::Sounds\\Windows Default.wav"

       //------------------------------------------------------------------------------------------   
       3 ) СВОЙСТВА ДЛИННА ТЕНИ И ВЫДВИЖЕНИЯ ОБЪЕКТОВ text и label - A_SHADOW, P_SHADOW, A_MOVE, P_MOVE. 
       
              _,bar,NH_COLOR,( int ) C'255,255,255' ,(ЦВЕТ ПОЛОСЫ СЛАЙДЕРА (ИЛИ D_BAR ИЛИ P_BAR) В СОСТОЯНИИ НЕЙТРАЛЬНЫЙ В ФОКУСЕ).
               
              _,label, A_SHADOW, 3 ,  (В АКТИВИРОВАННОМ СОСТОЯНИИ, ТЕНЬ ИКОНКИ СДВИГАЕТСЯ 3 ПИКСЕЛЯ).
              
              _,label, P_MOVE,   2 ,  (СДВИГ ИКОНКИ ПРИ НАВЕДЕНИИ КУРСОРА НА 2 ПИКСЕЛЯ ВНИЗ И ВПРАВО).
       
       4 )СВОЙСТВА ТЕКСТОВ:
          
           1 )TEXT_FONT  - ШРИФТ ТЕКСТА.   _,TEXT_FONT, "Microsoft JhengHei Light" ,
          
           2 )TEXT_STYLE - СТИЛЬ ТЕКСТА.   _,TEXT_STYLE, ( int ) FW_NORMAL ,
          
           3 )FONT_SIZE  - РАЗМЕР ШРИФТА  _,FONT_SIZE, 25 ,
          
           4 )TEXT_ANGLE - УГОЛ НАКЛОНА ТЕКСТА   _,TEXT_ANGLE, 450 , ( 45 ГРАДУСОВ).     
        
     //--------------------------------------------------------------------------------------------    
    
    d) СВОЙСТВА-ФЛАГИ - ДЛЯ РАЗНЫХ ЭЛЕМЕНТОВ ИЛИ ОКОН ЕСТЬ РАЗНЫЕ СВОЙСТВА-ФЛАГИ:
     //--------------------------------------------------------------------------------------------
       ЭЛЕМЕНТЫ:
       //-----------------
       1 ) FIC (FIXED_IF_CLICKED), FIXED_IF_DOUBLE_CLICKED  -  КНОПКИ. 
       
       2 ) IS_APPEARANCE_CONTROLLER  (ПЕРЕЧИСЛЕНИЕ ЭЛЕМЕНТОВ ЗАВЕРШАЮЩЕЕСЯ НА END) - ВКЛАДКИ И КНОПКИ. 
       
       3 ) IS_HIDDEN                 - ФЛАГ ПРЯЧУЩИЙ ЛЮБЫЕ ЭЛЕМЕНТЫ ИЛИ ГРУППЫ (ЗАВИСИТ ГДЕ ПОСТАВЛЕН). В ЗАВИСИМОСТИ 1 ИЛИ 0 . 
       
       4 ) POINTED                   - ФЛАГ УСТАНАВЛИВАЮЩИЙ РЕАКЦИЮ ЭЛЕМЕНТОВ НА НАВЕДЕНИЕ КУРСОРА В ЗАВИСИМОСТИ 1 ИЛИ 0 . 
       
       5 ) READ_ONLY                 - ФЛАГ ДЛЯ ПОЛЕЙ ВВОДА.
       
       6 ) IS_TABLE                  - ФЛАГ ТАБЛИЦЫ. УСТНАВЛИВАЕТСЯ ГРУППЕ ЭЛЕМЕНТОВ, КОТОРУЮ НУЖНО ПРЕДСТВИТЬ В ВИДЕ ТАБЛИЦЫ.
       
       7 ) IS_MOVABLE                - УСТАНАВЛИВАЕТ ПЕРЕМЕЩАЕМОСТЬ ЭЛЕМЕНТА ПО КАНВАСУ.
       
       8 ) IS_STRETCHABLE            - УСТАНАВЛИВАЕТ РАСТЯГИВАЕМОСТЬ ЭЛЕМЕНТА НА КАНВАСЕ.
       
       9 ) SHOW_NAMETIP              - УСТАНАВЛИВАЕТ ВСПЛЫВАЮЩУЮ ПОДСКАЗКУ С ИМЕНЕМ ЭЛЕМЕНТА.
       
       10 )SHOW_WIDGET               - УСТАНАВЛИВАЕТ ТАБЛО ДЛЯ СЛАЙДЕРА, СМЕЩАЮЩЕЕСЯ ЗА РУЧКОЙ.
       
       11 )SCROLLBAR_ON_LEFT         - УСТАНАВЛИВАЕТ СКРОЛЛ-БАР С ЛЕВОЙ СТОРОНЫ.
       
       12 ) ALL_STATES_SAME_COLOR    - УСТАНАВЛИВАЕТ ОДИНАКОВЫЙ ЦВЕТ ДЛЯ ВСЕХ СОСТОЯНИЙ ЭЛЕМЕНТА.
       
       13 ) CWIP (CLOSE WINDOW IF PRESSED) - УСТАНАВЛИВАЕТСЯ КНОПКАМ ДИАЛОГОВЫХ ОКОН. ЗАКРЫВАЕТ ОКНО НА НАЖАТИИ КНОПКИ.
       
       14 ) A2G (ADAPT_2_GRADIENT)    - ПРИСПОСАБЛИВАЕТ ЦВЕТ ОСНОВАНИЯ ЭЛЕМЕНТА К ГРАДИЕНТУ ЕГО КАНВАСА.
       
       15 )H_GRADIENT                 - МЕНЯЕТ РАСКЛАДКУ ГРАДИЕНТА НА ВЕРТИКАЛЬНУЮ.
       
       16 )TEXT_ALIGN                 - УСТАНАВЛИВАЕТ РАСКЛАДКУ ПОЛЯ ВВОДА. ЕСТЬ ДВА ФЛАГА TEXT_ALIGN_RIGHT И TEXT_ALIGN_CENTER.
       
       17 )SHOWS_TIP                  - УСТАНАВЛИВАЕТ ВСПЛЫВАЮЩУЮ ПОДСКАЗКУ С ЗАДАННЫМ СОДЕРЖАНИЕМ.
       
       18 )FRAME_TYPE                 - УСТАНАВЛИВАЕТ ТИП РАМКИ ОБЪЕКТА (МОЖНО ЗАДАВАТЬ 1 , 2 , 3 ИЛИ ВСЕ 4 СТОРОНЫ РАМКИ).
       
       19 )A_TEXT                     - УСТАНАВЛИВАЕТ АЛЬТЕРНАТИВНЫЙ ТЕКСТ, ПОЯВЛЯЮЩИЙСЯ ПРИ НАЖАТИИ НА КНОПКУ.
       
       20 )SWITCH_ALL                 - УСТАНАВЛИВАЕТ ПЕРЕКЛЮЧЕНИЯ ВСЕХ ЭЛЕМЕНТОВ В ГРУППЕ. (ПО ПРИНЦИПУ РАДИО-КНОПОК).
       
       21 )OPENS_WINDOW               - УСТАНАВЛИВАЕТ ОТКРЫТИЕ УКАЗАННОГО ОКНА ПРИ НАЖАТИИ НА ЭЛЕМЕНТ.
       
       22 )KC_TEXT                    - УСТАНАВЛИВАЕТ ТЕКСТ В ПРАВОЙ СТОРОНЕ ПУНКТА ОКНА МЕНЮ.
       
       23 )ROOT                       - ОСНОВНОЙ СВОРАЧИВАТЕЛЬ, СОЗДАЮЩИЙ ДРЕВОВИДНУЮ СТРУКТУРУ СПИСКУ ЭЛЕМЕНТОВ.
       
       24 )ON                         - УСТАНАВЛИВАЕТ ИЗНАЧАЛЬНО ВКЛЮЧЕННОЕ СОСТОЯНИЕ ЭЛЕМЕНТУ.
       
       25 )SET_TAB_CLOSER             - УСТАНАВЛИВАЕТ КРЕСТИК ЗАКРЫТИЯ ДЛЯ ВКЛАДКИ. (РАБОТАЕТ ТОЛЬКО В ДИНАМИЧНОМ СПИСКЕ).
       
       26 )C_FUNCTION                 - УСТАНАВЛИВАЕТ ВЫЗОВ ФУНКЦИИ НА КЛИКЕ НА ЭЛЕМЕНТ.
       
       27 )DC_FUNCTION                - УСТАНАВЛИВАЕТ ВЫЗОВ ФУНКЦИИ НА ДАБЛ-КЛИКЕ НА ЭЛЕМЕНТ.
       
       28 )DnD_FUNCTION               - УСТАНАВЛИВАЕТ ВЫЗОВ ФУНКЦИИ НА СОБЫТИИ Drag_n_Drop.
       
       29 )SWITCH                     - УСТАНАВЛИВАЕТ ПЕРЕЧИСЛЕНИЕ ПЕРЕКЛЮЧАЕМЫХ ЭЛЕМЕНТОВ ЗАВЕРШАЮЩЕЕСЯ НА END.
       
       30 )BLOCKS                     - УСТАНАВЛИВАЕТ ПЕРЕЧИСЛЕНИЕ БЛОКИРУЕМЫХ ЭЛЕМЕНТОВ ЗАВЕРШАЮЩЕЕСЯ НА END.
       
       
       
      ФЛАГИ ТАБЛИЦ:
       //-----------------
       1 ) IS_ZEBRA_STYLE                 - УСТАНАВЛИВАЕТ СТИЛЬ ЗЕБРА.
      
       2 ) ADJUSTABLE_COLUMNS             - УСТАНАВЛИВАЕТ РАСТЯГИВАЕМОСТЬ КОЛОНОК ТАБЛИЦЫ.
      
       3 ) IS_INTERACTIVE                 - УСТАНАВЛИВАЕТ РЕАГИРОВАНИЕ РЯДОВ НА КУРСОР.
      
       4 ) HIDE_SHOW_COLOMN               - УСТАНАВЛИВАЕТ ВОЗМОЖНОСТЬ ПРЯТАТЬ/ЯВЛЯТЬ КОЛОНКИ ТАБЛИЦЫ.
      
       5 ) ROTATE_COLOMNS                 - УСТАНАВЛИВАЕТ ВОЗМОЖНОСТЬ МЕНЯТЬ КОЛОНКИ МЕСТАМИ.
      
       6 ) IS_DINAMIC                     - ДЕЛАЕТ ТАБЛИЦУ ДИНАМИЧЕСКОЙ.
      
       7 ) ZB_COLOR                       - УСТАНАВЛИВАЕТ ЦВЕТ СТИЛЯ ЗЕБРЫ 1 .
      
       8 ) ZD_COLOR                       - УСТАНАВЛИВАЕТ ЦВЕТ СТИЛЯ ЗЕБРЫ 2 .      
      
       9 ) PAINT_VALUES                   - РАСКРАШИВАЕТ ЗНАЧЕНИЯ В ЯЧЕЙКАХ.
      
       10 ) ROW                           - ОТКРЫВАЕТ ПЕРЕЧИСЛЕНИЯ ДЛЯ УСТАНОВКИ СВОЙСТВ ВЫБРАННОГО РЯДА ТАБЛИЦЫ. ЗАКАНЧИВАЕТСЯ END.
      
       11 ) COLOMN                        - ОТКРЫВАЕТ ПЕРЕЧИСЛЕНИЯ ДЛЯ УСТАНОВКИ СВОЙСТВ ВЫБРАННОЙ КОЛОНКИ ТАБЛИЦЫ. ЗАКАНЧИВАЕТСЯ END.
      
       12 ) SELECTABLE_ROWS               - УСТАНВАЛИВАЕТ ВЫБИРАЕМЫМИ РЯДЫ ТАБЛИЦ.
      
       13 ) IS_SORTABLE                   - УСТАНАВЛИВАЕТ ВОЗМОЖНОСТЬ СОРТИРОВКИ РЯДОВ.
      
      
     
      СВОЙСТВА ПАРАМЕТРОВ:
       //-----------------
      
       1 ) PARAM_TYPE,  - _DOUBLE, _INT, MENU, RANGE,  <--  ТИПЫ ПАРАМЕТРОВ.  
      
       2 ) V_CURRENT - УСТАНАВЛИВАЕТ ИСХОДНОЕ ЗНАЧЕНИЕ ПАРАМЕТРУ ЭЛЕМЕНТА.
      
       3 ) V_MIN     - УСТАНАВЛИВАЕТ ГРАНИЦУ МИНИМАЛЬНОГО ЗНАЧЕНИЯ (ДЛЯ СЛАЙДЕРОВ И ПОЛЕЙ ВВОДА С КНОПКАМИ).
       
       4 ) V_MAX     - УСТАНАВЛИВАЕТ ГРАНИЦУ МАКСИМАЛЬНОГО ЗНАЧЕНИЯ (ДЛЯ СЛАЙДЕРОВ И ПОЛЕЙ ВВОДА С КНОПКАМИ). 
      
       5 ) V_STEP    - УСТАНАВЛИВАЕТ ШАГ ЗНАЧЕНИЯ (ДЛЯ СЛАЙДЕРОВ И ПОЛЕЙ ВВОДА С КНОПКАМИ).   
      
       6 ) DIGITS    - УСТАНАВЛИВАЕТ КОЛИЧЕСТВО ЦИФР ПОСЛЕ ТОЧКИ.
      
       7 ) __UNITS   - УСТАНАВЛИВАЕТ ЕДИНИЦЫ ИЗМЕРЕНИЯ ПЕРЕД ЗНАЧЕНИЕМ.
      
       8 ) __UNITS   - УСТАНАВЛИВАЕТ ЕДИНИЦЫ ИЗМЕРЕНИЯ ПОСЛЕ ЗНАЧЕНИЯ.
      
      
      
      ОКНА. ФЛАГИ:
       //-----------------
       1 ) ALWAYS_ON_TOP  - ОКНО ВСЕГДА СВЕРХУ.
      
       2 ) NIM (NAME_IN_MIDDLE) - ИМЯ ОКНА РАСПОЛОЖИТЬ ПО ЦЕНТРУ.
      
       3 ) OOI (OPEN_ON_INIT)   - ОТКРЫВАТЬ ОКНО НА ИНИЦИАЛИЗАЦИИ ПРОГРАММЫ.
      
       4 ) CLOSE_IF_OUT_OF_FOCUS - ЗАКРЫВАТЬ ОКНО, ЕСЛИ БЫЛ КЛИК НА ЛЮБОЕ ДРУГОЕ МЕСТО, КРОМЕ ОКНА.
      
       5 ) LOCKS_ALL_WINDOWS     - БЛОКИРУЕТ ВСЕ ОКНА ДО СВОЕГО ЗАКРЫТИЯ.
      
       6 ) ONLY_CLOSING          - УБИРАЕТ ВОЗМОЖНОСТЬ МИНИМИЗАЦИИ ОКНА, ОСТАВЛЯЯ ТОЛЬКО КРЕСТИК ЗАКРЫТИЯ.
      
      
      ОБЩИЕ СВОЙСТВА ОКОН:
       //-----------------
       1 ) MARGINS, 10 , 10 - УСТАНАВЛИВАЕТ ПОПРАВКИ К РАЗМЕРАМ ОКНА, КОТОРОЕ АВТОМАТИЧЕСКИ РАСЧИТЫВАЕТСЯ ПО РАЗМЕРУ ЕГО СОДЕРЖАНИЯ.
      
       2 ) OPENING_SOUND - УСТАНАВЛИВАЕТ ЗВУК ПРОИГРЫВАЕМЫЙ ПРИ ОТКРЫТИИ ОКНА. 
      
       3 ) LOCKS_WINDOWS - ПЕРЕЧИСЛЕНИЕ НАИМЕНОВАНИЙ ОКОН, КОТОРЫЕ НУЖНО БЛОКИРОВАТЬ ДО ЗАКРЫТИЯ ЭТОГО ОКНА. ЗАКАНЧИВАТЬ END.
      
       4 ) CAPTION       - ОКНА ОБЯЗАНЫ ИМЕТЬ РАЗНЫЕ ИМЕНА, НО ЗАГОЛОВКИ ОКНО МОГУТ БЫТЬ ОДИНАКОВЫМИ (НАПРИМЕР У ДИАЛОГОВЫХ ОКОН СО ШТАТНЫМИ СООБЩЕНИЯМИ).
      
      
      NEW_WINDOW, W_NAME, "Cправочник KIB1" ,  W_ICON, "::Images\\Help book 3d.bmp" ,  W_TYPE,SETTINGS, OOI, MARGINS, 17 , 17 ,ALWAYS_ON_TOP,NAME_IN_MIDLLE,
      
      NEW_WINDOW,  W_NAME, "Risk managment acsess" , CAPTION, "Acsess authorization" , W_ICON, "::Images\\Key.bmp" , W_TYPE, DIALOG,  ONLY_CLOSING, ALWAYS_ON_TOP, OOI,
     
     //--------------------------------------------------------------------------------------------
     
       
 
The second part will be with examples.