Обсуждение статьи "Пользовательские графические элементы управления. Часть 1. Создание простого элемента управления" - страница 2

 
Urain:

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

Вот и я про это.

Нужна сначала демонстрация системы в целом. Сначала АРХИТЕКТУРА. И показа - какое место занимают в ней каждый кирпичик - конкретный контрол.

А потом уже переходить на демонстрацию работы этих самых контролов (извините за MFC, просто удачная картинка).



 
sergeev:

ок. Это очень хорошо.

Если во второй части расскажите про высокоуровневые функции, то компонентами статьи начнут быстрее пользоваться.
Я бы всё таки начал с формы + кнопки (+ inputbox) и потом только в третьей части рассказал про конкретные компоненты управления - списки, меню и т.д.

Ведь задача - научить писать такие контролы. Но пока нет формы, куда их вставить, то статья не даст такого зрелищного и нужного эффекта.
К томуже как только вы дадите Форму+Button (имею ввиду 3 вида - radio, push, check) + EditBox уже во второй статье, то юзер будет видеть классы в целом и сможет создавать свои контролы самостоятельно.


Для взаимодействия с формой у контрола должно быть четыре метода Init(...), Show(X,Y), Hide(), Event(), все будет точно также, как и сейчас, при создании контрола на графике. Поэтому уже можно писать свои контролы. 

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

 
Integer:

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

ок. будем ждать :)

 

Тема актуальна..спасибо за освещение её..

Однако прочитав статью и комменты-подумал что суть алгоритма несколько сложна для реализации.

Подумалось: а не будет ли проще и универсальнее следующий алгоритм:

Панель с кнопками управления реализуется в любом языке с мощным редактором ( например Visual Studio

и она ( программа реализации панели управления с кнопками и другими примочками) работает автономно и независимо от МТ5.

Данные результаты заносятся в файл из которого МТ5 считывает периодически   ( неплохо также завести прерывание ).

Таким образом процесс программирования упростится и появиться универсальность ( возможность работы панели с Любыми программами а также с МТ4 ).

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

В этом направлении и хотелось бы видеть эволюцию МТ5  а не в  банальном расширении функций..

Да и обмен через ОЗУ также бы не повредил-оно всё таки побыстрее раз в 1000 наверно.

Также можно наверное рассмотреть  связку через Web..Это было бы довольно интересно .

Что скажете? 

 

Странно...

Для примера, один метод создания графического объекта вертикальная линия (OBJ_VLINE):

void CreateVLine(string aName,int aSubWindow=0,long aChartID=0)
  {
   ObjectCreate(m_id,m_name,OBJ_VLINE,aSubWindow,0,0);
   Attach(aName,aChartID);
  }

разве не так должно быть 

Для примера, один метод создания графического объекта вертикальная линия (OBJ_VLINE):

void CreateVLine(string aName,int aSubWindow=0,long aChartID=0)
  {
   Attach(aName,aChartID);
   ObjectCreate(m_id,m_name,OBJ_VLINE,aSubWindow,0,0);
  }

или так 

Для примера, один метод создания графического объекта вертикальная линия (OBJ_VLINE):

void CreateVLine(string aName,int aSubWindow=0,long aChartID=0)
  {
   ObjectCreate(aChartID,aName,OBJ_VLINE,aSubWindow,0,0);
   Attach(aName,aChartID);
  }
 
По умолчанию будет устанавливаться диапазон допустимых значений от -DBL_MAX до DBL_MAX

Опечатка

Причина обращения: