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

 
1. После подключения конструктора мы создадим простое окно. 

2. Постепенно начнем его усложнять, добавляя новые элементы. 

3. Сначала научимся простой системе создания групп элементов. 

4. Затем покажу простые принципы позиционирования через обьявление привязок и поправок. 

5. Потом будем задавать различные свойства элементов и окон с помощью простых слов, как например:  FIC - fixed if clicked, OOI - open on init, V_MIN, V_MAX, и STEP - минимальное значение, максимальное значение и шаг, для полей ввода с кнопками и слайдеров. Также будем синхронизировать изменения значений между несколькими элементами управления с помощью к.слова SYNC. A коммандой SWITCH будем связывать переключение кнопок в группе элементов.

6. Покажу как легко можно создать таблицу и интегрировать в нее любые элементы с помощью всего лишь двух слов: IS_TABLE.

7. И многое, многое другое. Возможности языка широки и спустя 4 года я еще не все вспомнил. Но, всему свое время...


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

Также в конструктор добавил 5 окон для упрощения поиска и установки следующих ресурсов интерфейса:

1. Нужных иконок

2. Шрифтов

3. Звуков (они тоже подключаются через язык разметки).

4. Рамок (элеметам можно задавать рамки). 

5. Цветов.

//---------------------------------------------------------------

Вспомогательные окна будут вызываться из панели задач конструктора, а также из контекстного меню (через double click).

Так это выглядит:


 
Все иконки уже интегрированы в конструктор, но шрифты и звуки нет. Однако, включить шрифты можно в настройках виндоус, а звуки я передам архивом и вы просто положите их в папку Sounds в МТ5.
 

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

Так он выглядит. Вкладки можно перетаскивать, менять местами и закрывать. Они срабатывают на отжатии левой кнопки мышки.

 

У конструктора имеется свое контекстное меню которое вызывается дабл-кликом на пустое пространство графика или на любое пользовательское окно внутри него. 

Вы также найдете следующие функции:

1. Окно выводит другие окна наверх с помощью функции "Bring window on top". Это нужно тогда когда другое окно со свойством "Always on top" его загораживает. В остальных случаях в этой функции нет необходимости.

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

3. Контекстное меню конструктора может вызвать пользовательскую панель задач и работать с ней.

4. Опция  "Save project and print API file" печатает созданный интерфейс в файл для последующего его подключения к пользовательской программе.

5. Опция "About the program" вызывает окно с текстом рассказывающим о копирайте.


Так это выглядит:


 
На этом пока все. До воскресенья. 
 
Реter Konow # :
На этом пока все. До воскресенья. 
Спасибо, что пожертвовали своим временем на выходных и с нетерпением ждете воскресного релиза.
 
Nikolai Semko # :

ну Ок
ты ж не предоставил этот файл, поэтому и строю предположения. 
Будем ждать вариант со всеми файлами, чтобы можно было протестировать в живую.

Я внимательно прочитал ваш разговор через переводчик, Николай Семко думаю вы правы, надеюсь мои слова не обидят автора, ваши навыки программирования отличные.
Лучший способ обработки событий — использовать реализацию указателя, которая отделяет файл Internal_API.mqh, созданный механизмом.
Когда кнопка нажата или отпущена, это два события. Движок может генерировать функцию для кнопки, например setButton1Click(void* ptr), а затем вызывать ее в случае: ptr() кнопки, эта строка «setButton1Click(void* ptr)» вызывается пользователем. в его советнике ptr — это указатель на функцию, полностью прописанный в файле пользователя, так что Internal_API по-прежнему будет нормально работать, но не нуждается в каких-либо изменениях.
Это я так понимаю, несмотря ни на что, я все еще жду шедевра автора.
 
Я не знаю, откроете ли вы исходный код движка GUI, если он будет с открытым исходным кодом, я верю, что кто-то будет сотрудничать для улучшения этого проекта , если он не будет с открытым исходным кодом, я могу это полностью понять, это ваша работа.