Краудсорсовый GUI. Открытое бета-тестирование. - страница 7

 

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

  1. Три базовые функции, (как три слона, что держат Мир):
  • Добавить элемент в ядро.
  • Удалить элемент из ядра.
  • Переместить элемент внутри ядра.

    2. Две функции позволяющие редактировать элементы:

  • Установить фокус редактирования.
  • Редактировать элемент.

    3. Функции позволяющие работать с проектами:

  • Загрузить проект.
  • Сохранить проект.

    4. Окна, необходимые для редактора:

  • Выборка элементов управления.
  • Выборка фокуса.
  • Выборка свойств.
  • Окна выборок значений различных свойств (цвета, рамки, шрифты...).
  • Окна для задания параметров создаваемых таблиц, списков и меню.
  • Окна подтверждения действий.

Теперь, немного пояснений:

  • Функция добавления элемента в ядро: Как известно, ядро делится на две области - штатную и пользовательскую. В штатной находятся прототипы элементов (внутри окна выборки). На событии переноса элемента в пользовательское окно, размер пользовательской части ядра увеличивается и в освободившееся пространство помещается шаблон элемента из штатной области. Далее, порядок нумерации объектов в ядре переписывается и новый элемент занимает свое место. Самая сложная часть - правильно переписать изменившуются часть ядра, поскольку много параметров вовлечены в эту перемену. 
  • Функция удаления элемента, по сути, инвертированная функция добавления элемента. Все тоже самое, только наоборот.

  • Функция перемещения элемента внутри ядра по сути, манипулирует двумя выше-описанными функциями. 

  • Важнейшей функцией моего редактора является функция фокуса редактирования. Что это такое: пользователь выделяет элементы, объекты и свойства которые собирается редактировать. Делает это так: клик на элемент автоматом помещает его в фокус, а далее, с помощью окна переключения фокуса, можно взять в фокус все элементы этого типа, либо один объект внутри элемента или выбранного множества элементов. То есть, можно переключать цель редактирования. Скажем, выбираем опцию фокуса "этот элемент" и "основание" и редактирующие элементы будут работать со свойствами этого основания, а если возьмем в фокус "Тип элемента в окне" и "Текст" - редакторы будут модифицировать свойства всех текстов элементов в окне. Ну, и так далее. Вариантов фокуса можно сделать несколько и это сделает редактирование удобным и быстрым.
  • Функция редактирования переносит значения свойств редактируемых элементов в параметры редакторов, которые работают с полученными значениями, а потом, возвращает их обратно в исходные свойства, после чего, перерисовывает измененные элементы.

  • Функция загрузить проект - инверсия функции "Сохранить проект", которая успешно работает в конструкторе (вызывается из меню и печатает файл "CORES"). Она берет сохраненные ядра из файла, и помещает их обратно в пользовательскую область, откуда они и были выгружены в файл.

  • Окна необходимые для редактора частично у меня уже имеются. Когда то, я создавал видео о визуальной студии, где показал создание ее прототипа. Там как раз все необходимые окна написаны на языке разметки. Так что, это съэкономит мне время и силы.
  • Также, где то в архивах завалялась функция синей рамки, которой выбираются элементы для редактирования. 
  • Уже есть функции изменения размеров элементов (показано в гифе) и перемещения элементов, а это - важнейшая часть процесса редактирования.


Вот и все. Это абсолютная реальность. Так что, язык разметки уходит от нас... Мне лично грустно...

 
Реter Konow:

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

Ура!
Мы с тобой уже об этом говорили почти 3 года назад :))

 
Во вторник, я представлю минимальную версию виз.редактора. Там будет создаваться окно, добавляться элементы (по одному), редактироваться позиция, размеры, цвет (пока без навороченного фокуса) и сохраняться в проект. Над остальными вещами работа затянется думаю, до конца месяца. Может немного дольше. Редактор будет всем доступен.
 
Nikolai Semko:

Ура!
Мы с тобой уже об этом говорили почти 3 года назад :))

Да, Николай:)) Это случилось!))

 
Nikolai Semko:

Ура!
Мы с тобой уже об этом говорили почти 3 года назад :))


Я говорил об этом тоже, что легче написать проект на плюсах или ембаркадеро , нежели учить разметке.....
 

Сегодня вечером (через часов 5...) представлю рабочий прототип визуального редактора, на котором можно добавлять элементы и редактировать свойства в "ручном" режиме. Приглашаю опробывать и высказать мнение. Его развитие движется с огромной быстротой, на которую я не рассчитывал, и то что увидите - всего лишь начало. Поэтому, не судите строго. За считанные недели его функционал может многократно умножиться и улучшиться.

 

Опубликовал.

Краткие инструкции:

Распакуйте архив и установить советник KIB_Studio.ex5 в папку экспертов, а индикатор Empty_window.ex5 в папку индикаторов. Запустите сначала советник, потом индикатор.

1. Появится окно меню. Оно содержит базовые элементы управления.

2. После загрузки индикатора, появится пустое окно для редактирования.

3. Перетаскивайте элементы из окна меню на канвас пустого окна и редактируйте их.


Редактирование включает следующие возможности:

1. Изменение размеров объектов (основание элементов (кнопок) и тексты). Некоторые элементы не меняют некоторые из своих параметров. Это сделано чтобы сохранить их целостность. Например, вып.список не меняет высоту и положение текста, а также параметры своей кнопки.

2. Перемещение элементов по канвасу. Можно перемещать как весь элемент, так и его части (опять же - не для всех элементов). Для элемента, перемещение ограничено канвасом, а для его внутренних объектов - пространством его основания. Коррекция автоматическая.

3. Откройте окна выборок цветов, шрифтов и иконок нажав на вкладку меню "Main properties". Для редактирования объекта, нажмите на него, а после, нажимайте на нужные цвета, шрифты или иконки, в зависимости от выбранного объекта редактирования.

4. Можно менять размер текста нажав на него, при стрелках вверх-вниз или влево-вправо и перемещать курсор. Текст будет менять свой размер, становясь меньше или больше.

5. Можно менять угол наклона текста, вращая его. Для этого нужно ухватить стрелку в левом верхнем углу и потянуть. Стрелка направлена по диаганали слева направо. 

6. Можно печатать на элементах, меняя их текст. Для этого, нужен дабл-клик на текст. Появится поле ввода. Еще клик - и будет выбран текст. Далее, его можно стереть и напечатать что то другое.

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


Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Каждый скрипт, сервис и эксперт работает в собственном отдельном потоке. Все индикаторы, рассчитываемые на одном символе, даже если они запущены на разных графиках, работают в одном потоке. Таким образом, все индикаторы на одном символе делят между собой ресурсы одного потока. В одном потоке с индикаторами также последовательно выполняются...
 

Молодец, Петр!
Большая работа проделана. 

Начало положено.
Файл то с кодом генерируется? Не нашел. 

 
Nikolai Semko:

Молодец, Петр!
Большая работа проделана. 

Начало положено.
Файл то с кодом генерируется? Не нашел. 

Спасибо, Николай.

 Загрузочный и апи файлы генерируются через главное меню (дабл-клик на график), но в этой версии не стоит пока пробывать. Там движок нужно апгрейдить и далеко не все сделано в самой студии. Пока немного рано. К концу месяца постараюсь полностью перенести возможности языка в редактор.

 

что то все это переходит к обычной настройке стилей. Там есть определенные моменты это кнопка ссылка, кнопка наведение, кнопка нажатие, просто кнопка. И для каждого момента обычно делают свои стили, ну либо для их смеси.

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


Ярким примером такой работы будет создание меню для создание меню. Т.е. если графически будет возможно сделать левую или правую меню со встройкой кода так сказать не лету. 

Либо это просто генерация кнопок в код....?

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