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 ВЕРТИКАЛЬНЫЙ ПРОГРЕСС-БАР. ИСПОЛЬЗУЕТСЯ В ДИАГРАММАХ.
//-------------------------------------------------------------
/**************************************************************
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...
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
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.
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,
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.
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д. Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
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,
//--------------------------------------------------------------------------------------------
These are the basics. A set of rules that you must know. Here's the file. (there's one in the assembly too.)
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
There is no problem inside the window area. Rafil, set the _,FIC property to your button and try again.
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,
By the way, pay attention to the properties of your tabs. They are here:
In pink:
In green:
In blue:
Element properties. Part 1 - the basics. Part 2 - examples.