![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
12. Программное получение/установка границ значений слайдера и поля с кнопками (_V_MIN, _V_MAX, _V_STEP, _DIGITS).
1. Откроем окно с элементами обладающими вышеперечислеными параметрами:
2. Пропишем получение значений _V_MIN, _V_MAX, _V_STEP, _DIGITS и выведем их в журнал:
Результат: значения свойств параметра слайдера выведены в журнал.
//---------------------------------------------------------------------------------------------------------------------------------------
3. Повторим операцию с полем с кнопками. В отличии от слайдера, полю установлены другие границы чисел, а также тип его значения double.
Результат: значения свойств параметра поля с кнопками выведены в журнал.
//---------------------------------------------------------------------------------------------------------------------------------------
4. Установим другие границы диапазона слайдера (тестируется впервые, результат неизвестен).
Результат: *найдена проблема с диапазоном в отрицательных числах (исправление в след.версии).
Проверим с границами в положительных числах:
Результат: границы диапазона успешно изменены.
Главное: диапазон слайдера можно менять с помощью его функции.
**Важно: Нельзя ретроактивно менять тип значения параметра с int на double или наоборот.
//-------------------------------------------------------------------------------------------------
Проведем похожий опыт с полем ввода:
Результат: Работает как задумано. Поле с кнопками принимает заданный диапазон и шаг. При выходе за границы сообщает об ошибке в журнал.
//--------------------------------------------------------------------------------------------------
5. Напоследок, установим значение_DIGITS полю с кнопками (у слайдера не получится, так как тип его параметра int):
Результат:
Итоги:
На этом, данная тема завершена.
13. Запрос состояния элементов _GET_STATE.
Часто возникают ситуации когда необходимо программно получить состояние того или иного элемента интерфейса. Для решения этой задачи создан идентификатор _GET_STATE.
//--------------------------------------------------------------------------------------------------------------------
*Важно: На запрос_GET_STATE, функция возвращает индекс текущего состояния элемента.
//--------------------------------------------------------------------------------------------------------------------
Ниже на картинке показан список состояний элементов.
1. Идентификаторы состояний:
(*в следующем релизе, префикс v_ будет заменен на префикс s_)
Индексы выводимые в журнал:
Протестируем запрос и получение состояний элементов:
1. Откроем окно и получим исходное состояние кнопки "Start":
Результат: получено значение 15, соответствующее состоянию v_NEUTRAL_STATE.
2. Выведем в журнал состояния кнопки на нажатии и отжатии:
Для этого:
Результат: на событии нажатия/отжатия в журнал печатается индекс текущего состояния.
Напомню:
//----------------------------------------------------------------------------------------------------------------
3. Повторим запрос с чекбоксом.
1. Получим состояние чекбокса на событии открытия окна:
Результат: получено значение 15, соответствующее нейтральному состоянию v_NEUTRAL_STATE (в котором чекбокс и находится).
2. Далее, запросим состояния чекбокса на событии нажатия и отжатия.
Для этого:
Результат: получены значения 66 (v_NEUTRAL_HIGHLIGHTED) и 67 (v_ACTIVATED_HIGHLIGHTED), что означает подсвеченное нейтральное и подсвеченное нажатое состояние.
//-----------------------------------------------------------------------------------------------
На этом, первая часть темы завершена.
Во второй части, вернем состояния выпадающего списка D_LIST, слайдера H_SLIDER, и полей ввода S_EDIT и EDIT.