Делаем краудсорсовый проект по Canvas - страница 2

 
Zorro:
По теме использования канваса в качестве UI.

я б сказал красавчик )

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

 
Спасибо!

Хидеры для GIF и PNG
Файлы:
ZoGIF.mqh  2 kb
ZoPNG.mqh  2 kb
 

хорошо.

раз вы уже спец, с практикой создания контролов на канвасе,

может тогда опишите принцип работы ваших базовых классов и общую событийную модель?

----

Можем начать от вашей базы и затем добавить другие контролы
- кнопка
- поле ввода
- ползунок
- выпадающий список (уже есть в вашем архиве)
- выбор времени (уже есть в вашем архиве)


 
Спец надо взять в кавычки :)

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

В общих чертах:

Базовый объект CFrame - абстрактный объект на канвасе, имеет x,y, width, height и набор виртуальных методов для обработки событий (OnMouse..., OnNotify, OnPaint), может содержать в себе другие объекты CFrame.

CWindow - потомок CFrame, который реализует канвас и является графическим объектом на чарте, принимает  и обрабатывает внешние события (OnChartEvent), раздавая его объектам (child), которые находятся на нём.
Все объекты GUI порождаются от CFrame, дополняя его необходимыми методами

В проекте P&F Chart нет глобального контроллера событий, он необходим для приложений с 2 и более окнами(читайте канвасами).
Именно он должен раздавать события окнам и отслеживать захват инпута(клавиатура + мышь) GUI контролами.

 
А вот с полем ввода беда - пока нет хорошей идеи, как заюзать то, что нам доступно.

ИМХО сейчас, можно сделать полноценный EDIT, только если рисовать свою GUI клавиатуру, но будет тяжело поддерживать языки, да и неудобно мышкой набирать текст...
 
Renat Fatkhullin:
Кстати, в метаедиторе можно заводить проекты, приглашать других участников, давать им права и вместе работать над проектом.

Имеется ввиду  MQL5 Storage ?

Ренат подскажите  чуть подробней ,  где почитать о механизме.

Самим  Staorage MQL5  пользуюсь практически со дня его старта - но не обнаружил там варианта коллективного доступа.

 
Правая клавиша мыши на проекте, в меню выбрать "Добавить права доступа", я уже пользовался этим в одном совестном проекте, вполне себе удобно - всё под рукой...
 

ок.

с CFrame понятно.

---

Я заметил, что вы пошли по пути, когда gui-блоки представлены каждый своим битмапом.

важный момент для читающих и кто уже начал обдумывать:
работа должна происходить только на одном битмапе, с отрисовкой всех элементов gui на нём. С учётом z-order. 
В этом случае появится больше возможностей для отрисовки. (тени, градиенты и тд.)
И упрощается контроль (мы не будем выходить на уровень МТ объектов)

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

ИМХО сейчас, можно сделать полноценный EDIT, только если рисовать свою GUI клавиатуру, но будет тяжело поддерживать языки, да и неудобно мышкой набирать текст...
хм, а в чем проблема с edit?
 
Yuriy Zaytsev:

Имеется ввиду  MQL5 Storage ?

Ренат подскажите  чуть подробней ,  где почитать о механизме.

Самим  Staorage MQL5  пользуюсь практически со дня его старта - но не обнаружил там варианта коллективного доступа.

Проекты - MetaEditor
Проекты MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены Проекты. Совместная работа над проектами осуществляется через MQL5 Storage. Соответственно, пользователь должен иметь действующий аккаунт на MQL5.community, а также выполнить подключение MQL5 Storage. Работа с проектами обладает всеми преимуществами MQL5 Storage: Безопасное хранение исходных кодов. В случае выхода из строя жесткого диска, локальная копия кодов может быть восстановлена из хранилища в кратчайшие сроки. Доступ к хранилищу с любого компьютера. Вы можете авторизоваться в MetaEditor при помощи вашего аккаунта MQL5.community и получить доступ к проекту с любого компьютера. Доступ к каждому из проектов настраивается только автором проекта (пользователем, который его создал). Без разрешения автора никто не имеет доступа к проекту. Для совместных проектов в каталоге MQL4 или MQL5 предназначена папка Projects. В Навигаторе она...

Справка MetaTrader 5 | 2015.12.02 10:22

 

А вообще, нужно потестить совместную работу с проектами - думаю возникнут вопросы.