Понятно Петр. Спасибо. Не удобно, конечно, для разработчика. Очень много лишнего кода и телодвижений. Все же вариант с указателем на функцию намного лучше.
Чего ж неудобно то? Вот попробуешь и тогда выводы сделаешь.))
1. Все обработчики элементов конструктор печатает сам, только подлючай.
2. Интеллисенс подсовывает нужные функции, только выбирай.))
3. Все правила простые, запомнить несложно.
Легче может быть только визуальный редактор, но это потом.
P.S. После 4-ех летнего перерыва выполнил твою задачу за 10 минут. Остальное время пытался понять почему твоя функция не работала, и потом снимал гиф. )))
Реter Konow #: Чего ж неудобно то? Вот попробуешь и тогда выводы сделаешь.))
1. Все обработчики элементов конструктор печатает сам, только подлючай.
2. Интеллисенс подсовывает нужные функции, только выбирай.))
3. Все правила простые, запомнить несложно.
Легче может быть только визуальный редактор, но это потом.
P.S. После 4-ех летнего перерыва выполнил твою задачу за 10 минут. Остальное время пытался понять почему твоя функция не работала, и потом снимал гиф. )))
Мне видится, что твой файл Internal_API.mqh, который придется писать разработчику достаточно объемный и замысловатый. Сколько будет строк кода в нем в такой постановки задачи с одной кнопкой?
Для разработчика важно разработать свой GUI привычным способом, создавая объект.
Например, у меня такая задача выглядит следующим образом:
желтым цветом выделено все, что касается создания и настройки GUI. Больше ничего делать не нужно. Каждый новый элемент GUI - это одна строка кода + функция обработчик события от этого элемента
При решении твоей задачи я вставил из интеллисенса 2 строки в обработчик. Показал на картинке. Я написал только название цветов в скобках. И две строки функции (вместо твоей). Больше ничего.
Реter Konow # : Я "чищу" код перед релизом, "перестраиваю" движок, убираю ненужные вещи (если удается их найти), одновременно вспоминая, как все работало.
В общем, скоро выложу.
С нетерпением жду вашего релиза, хочу понять ваши идеи по кодированию.
Питер, я тебя не понимаю. Вы не ответили на вопросы. Для программистов важно знать, как взаимодействовать с графическим интерфейсом во время работы. Вот пример моего графического интерфейса. Я нажал на ярлык светлой/темной темы, и это событие немедленно вызвало функцию изменения цвета фона и линий. Как вы осуществляете это взаимодействие?
Что значит " Пользователь НЕ будет взаимодействовать (вообще) с моим кодом . "? Программисту нужно взаимодействовать не с кодом, а с событиями, которые должны этот код генерировать.
В конце концов, GUI - это не отдельная независимая программа. GUI в конечном итоге должен взаимодействовать с основной программой разработчика. Будь то индикатор или советник.
GUI, который вы показываете на своих фотографиях, просто потрясающий, не могли бы вы рассказать нам, как вы этого добились?
С нетерпением жду вашего релиза, хочу понять ваши идеи по кодированию.
Хорошо.
Сделаю небольшое пояснение насчет релиза. После 4-ех летнего перерыва, оказалась утеряна последняя версия движка. Обнаружилось это не сразу. Старая версия рабочая, но требует апгрейда до версии конструктора. Для этого я должен достаточно глубоко вникнуть в код, который немного подзабыл. Поэтому возникла задержка. Однако, ничего страшного и все будет закончено.
Из за задержки с движком, я решил что релиз будет разделен на 2 части. Сначала выставлю конструктор. Желающие ознакомятся с языком разметки и напишут нужный графический интерфейс. Через некоторое время я передам публике обновленный движок. После помогу подключить созданный GUI и он заработает совместно с пользовательскими советниками или индикаторами. Далее каждый освоит простые принципы работы с языком разметки и методы подключения к интерфейса своим приложениям.
Сделать релиз из двух частей проще потому что конструктор уже почти готов к релизу, а движок требует небольшой доработки.
Ну и конечно примеры кода разметки и дополнительные инструкции его написания тоже предоставлю вместе с релизом конструктора.
Добавлю уточнение к сказанному выше: после релиза конструктора, желающие сразу получат возможность проектировать свой GUI на лету прямо из МЕ.
1. Для этого они откроют файл инклюдник "KIB-source.mqh" из сборки релиза.
2. Сохранят его в папке индикаторов и скомпилируют после этого.
3. В результате они увидят новый индикатор под названием "KIB-source.ex5" в ветках навигатора МТ5 и закинут его на свободный график.
4. Пользователь создаст в навигаторе MQL5\include\... папку для файлов с кодом разметки.
Например MQL5\include\My_GUI\Project_1\...
В этой папке он будет хранить файлы с интерфейсом своих проектов. В них же будет писать, редактировать, экспериментировать и проектировать UI на коде разметки.
5. Важно уточнить, во время работы с языком разметки при построении гр.интерфейса, результат выводится на график МТ5, где стоит индикатор "KIB-source.ex5" и советник (конструктор) "KIB.ex5", которые предоставлю в первом релизе. Они оба должны быть на одном графике.
Далее (очень важно), во время компиляции файла "KIB-source.mq5" параллельно открытого в МЕ, (вместе с файлами пользовательского GUI-проекта), весь код разметки пересылается в конструктор на том же графике и он полностью перестраивает граф.интерфейс заново. Это занимает от 200мс до 1000мс в зависимости от количества окон и элементов в интерфейсе. И юзер сразу видит результат внесенных изменений. Все происходит очень быстро и почти в реальном времени - внес изменения в код разметки, скомпилировал "KIB-source.mq5" и через долю секунды видишь результат на графике МТ5. Поэтому, желательно работать на двух мониторах. На одном открыт МТ5, на втором МЕ.
6. Удобство языка разметки в простоте и возможности создания шаблонов элементов и окон, которые легко копипастить между окнами или проектами.
7. Добавлю, что конструктор выложу открытым кодом в архиве. Поэтому у пользователя будут следующие задачи:
1. Открыть архив.
2. Поместить папку KIB в папку MQL5\include\
3. Файл CONNECTION.mqh из архива тоже поместить в папку MQL5\inlude\ (не помещать в подпапки).
4. Файл KIB.mq5 положить в папку MQL5\Experts\, открыть в МЕ, скомпилировать и сохранить, чтобы в навигаторе МТ5 возник советник KIB.ex5.
5. Забросить этот советник на тот же график что и индикатор КIB-source.mq5.
6. После этого, файл конструктора KIB.mq5 в МЕ можнл закрыть. Более он не понадобится.
Понятно Петр. Спасибо.
Не удобно, конечно, для разработчика. Очень много лишнего кода и телодвижений.
Все же вариант с указателем на функцию намного лучше.
Чего ж неудобно то? Вот попробуешь и тогда выводы сделаешь.))
Мне видится, что твой файл Internal_API.mqh, который придется писать разработчику достаточно объемный и замысловатый. Сколько будет строк кода в нем в такой постановки задачи с одной кнопкой?
Для разработчика важно разработать свой GUI привычным способом, создавая объект.
Например, у меня такая задача выглядит следующим образом:
желтым цветом выделено все, что касается создания и настройки GUI. Больше ничего делать не нужно.
Каждый новый элемент GUI - это одна строка кода + функция обработчик события от этого элемента
Николай, я все уже обьяснил.
ну Ок
ты ж не предоставил этот файл, поэтому и строю предположения.
Будем ждать вариант со всеми файлами, чтобы можно было протестировать в живую.
Я "чищу" код перед релизом, "перестраиваю" движок, убираю ненужные вещи (если удается их найти), одновременно вспоминая, как все работало.
С нетерпением жду вашего релиза, хочу понять ваши идеи по кодированию.
Питер, я тебя не понимаю. Вы не ответили на вопросы.
Для программистов важно знать, как взаимодействовать с графическим интерфейсом во время работы.
Вот пример моего графического интерфейса. Я нажал на ярлык светлой/темной темы, и это событие немедленно вызвало функцию изменения цвета фона и линий. Как вы осуществляете это взаимодействие?
Что значит " Пользователь НЕ будет взаимодействовать (вообще) с моим кодом . "?
Программисту нужно взаимодействовать не с кодом, а с событиями, которые должны этот код генерировать.
В конце концов, GUI - это не отдельная независимая программа. GUI в конечном итоге должен взаимодействовать с основной программой разработчика. Будь то индикатор или советник.
GUI, который вы показываете на своих фотографиях, просто потрясающий, не могли бы вы рассказать нам, как вы этого добились?
С нетерпением жду вашего релиза, хочу понять ваши идеи по кодированию.