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

 

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

Сделал очень много. Есть что рассказать и показать.

После публичного тестирования загружу в кодо-базу.

Интересная вещь получилась...

Подробности завтра. 

Файлы:
4uh38_06.08.24.zip  1712 kb
 

Немного забегая вперед скажу, что нашел очень удобное решение для пользователей. Внутри своего кода они смогут легко ориентироваться в окнах, элементах и свойствах.  Решение позволяет не запоминать названия элементов или свойств, но легко находить и работать с ними. При этом, каждый элемент имеет список get/set свойств доступных только ему и "родственных" элементам. С помощью префикса вписанного в название функции элемента, пользователь вызывает его и никогда не ошибется, пытаясь вернуть или установить свойство, которого у элемента нет. 

Функции обертки получились настолько универсальны и просты в использовании, что сам удивляюсь. Возвращают значение параметра при пустых скобках, устанавливают при одном значении, возращают значение свойства из списка при пустом первом параметре и индексе свойства во втором. Устанавливают значение в свойство при наличии значения в первом параметре и индексе свойства во втором. Они также возвращают уведомление о результате в виде 1 в случае успеха, и -1 в случае ошибки (неверное значение или свойство). Функции сами перерисовывают элементы. Заботиться об этом не нужно.

Что можно делать с помощью функций оберток:

1. Получать значение параметра элемента.

2. Устанавливать значение параметра элемента.

3. Получать значения свойств элемента из индивидуального списка свойств принадлежащего его типу элементов (вызывается префиксом прописанным в названии функции).

4. Устанавливать значения свойств элемента из того же списка.

5. Устанавливает состояние элемента: нейтральное, активированное, (on/off), блокированное нейтральное, блокированное активированное. 

6. Возвращает текущее состояние элемента.


В первом случае функция возвращает значение параметра.

Во втором - результат: успешная установка или ошибка. Ошибка выводится в журнал.

В третьем - возвращает значение свойства.

В четвертом - результат: успех или ошибка установки свойств.

В пятом - возвращает 1 или -1.

В шестом - возращает индекс состояния элемента (подробности далее).


Все делает одна функция обертка которая печатается автоматически. Для ее поиска нужно напечатать w_, откроется список интеллисенс, в нем названия окон. В одном из них искомый элемент. Нужно примерно помнить в каком он окне. Далее, стереть чертовку и ввести номер окна и выбрать из списка элементов тот, что нужен. Никакого запоминания.

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

Окна тоже имеют свои обертки. Они могут их открывать и закрывать. Остальные возможности еще не реализованы.


Провел большой апгрейд файла API. Теперь в нем ГОРАЗДО больше полезной информации об элементе. А именно: печатаются префиксы, индивидуальные свойства, прототипы функции обертки элемента и его окна, точная локация элемента (указаны таблица, канвас и вкладка которой принадлежит элемент, если они есть).  Печатается тип его параметра (int, double, string...), печатаются свойства его параметра (мин.значение, макс.значение, шаг, количество цифр после запятой). Начальное значение или выбранная опция (в зависимости от элемента). Все оформлено вполне читабельно и понятно.

Частично уже протестировал возможности нового функционала и остался доволен. Все работает как задумано.

Завтра покажу на практике.

 
Каталог все еще на русском ...... Я надеюсь, что это возможно иметь каталог и имена файлов на английском языке, как KIB PROJECTS ...... Это небольшая просьба от меня!
 
#include<(2)  KIB PROJECTS\(6) DEMO PROJECTS\Demo project 1.mqh>

Демо-проект 1 включен в (1) KIB-source v1, но почему я не вижу связанного с ним окна на диаграмме?

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

Демо-проект 1 включен в (1) KIB-source v1, но почему я не вижу связанного с ним окна на диаграмме?

Проверил сборку. Demo-project 1.mqh находится здесь:

(2) KIB PROJECTS\(6) DEMO PROJECTS\Demo project 1.mqh


 
Немного позже проведу полный разбор релиза.
 

Вчера, после загрузки новой версии, после большой работы и будучи на эмоциональном подьеме, я написал очень позитивный пост буквально восхваляющий новый функционал. Такой энтузиазм не очень уместен в контексте строгого технического обсуждения. Сегодня хочу взглянуть на реализованные решения спокойно и непредвзято. Буду приветствовать конструктивную критику и объективную оценку. Мне важно получить ясность в отношении точки зрения сторонних пользователей. Обратная связь поможет внести коррективы и сделать улучшения. И конечно, обнаружить и исправить баги.

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