Обсуждение статьи "Создание графических интерфейсов для экспертов и индикаторов на базе .Net Framework и C#" - страница 2

 
fxsaber:

К сожалению, для таких нубов, как я, все это темный лес. В Вашей статье показано классное применение гитхаба. Наверное, это всего 1% от его возможностей, но он увидился полезным.

По приведенным ссылкам так и не понял, как это может помочь в MQL5. Наверное, у программистов это must-have, но есть и далекие от программирования, каким сам являюсь.

Если бы была статья на эту тему для MQL5, было бы полезно.

Системы контроля версий (любые, а не только github), весьма нетривиальные вещи. Что это такое, и зачем это нужно за пять минут не объяснишь. Но фишка "скопировал ссылку и получил последнюю версию проекта" - одна из фишек таких систем, и очень действительно очень классная. 

 
Vasiliy Sokolov:

4) Можно по-разному настроить. Сделано так, что нужно указать имя формы и сборку, в которой она располагатеся. Т.е. уже сейчас можно запустить хоть одну, хоть две хоть пять форм. Ограничений нет.

Например, запускаем два идентичных советника, но с разными формами. Разве они не будут конфликтовать?

Если правильно понял, Вы предлагаете для каждого советника прописывать отличный от других GuiMT.exe. Так?

 
Igor Makanu:

хорошая статья, но почему то думаю, что уровень совсем не для начинающих

Объяснить проще, наврятли удастся. Честно, старался как мог. Даже установку студии расписал подробно, по требованию трудящихся.

Пользователю-чайнику, нужно сделать три вещи:

  1. Нарисовать нужную ему форму (именно нарисовать в Visual Studio)
  2. Создать в своем эксперте код обработки событий (предполагается что пользователь знаком с MQL хотя бы на базовом уровне)/
  3. Связать форму с экспертом через GuiController (прописать правильные пути, указать import и т.д.).

Если и это сложно - то сделали все что могли как говорится.
 
fxsaber:

Например, запускаем два идентичных советника, но с разными формами. Разве они не будут конфликтовать?

Если правильно понял, Вы предлагаете для каждого советника прописывать отличный от других GuiMT.exe. Так?

М-м-ммммм. Нужно подумать....

 
Igor Makanu:

ЗЫ: форму с кнопками и без сторонних dll ( GuiController.dll  ) пользователь может создать средствами VS2017 в буквальном смысле в 2 клика: создать проект - библиотека классов Net и потом  проект -добавить форму Windows

Если не знаком с C# к сожалению не сможет. Код который Вы привели как бы "простой", всего несколько строк: создали поток, назначили ему делегат, затем запустили его. Еще в какой-то другой части программы подписались на нужные события... - Все как бы "просто"...

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

 
fxsaber:

Например, запускаем два идентичных советника, но с разными формами. Разве они не будут конфликтовать?

Если правильно понял, Вы предлагаете для каждого советника прописывать отличный от других GuiMT.exe. Так?

Короче да, конфликтовать такая конфигурация будет. Что бы такого не было, можно перегрузить метод ShowForm:

ShowForm(ulong magic, string assembly, string form_name);

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

 
Vasiliy Sokolov:

Если не знаком с C# к сожалению не сможет. Код который Вы привели как бы "простой", всего несколько строк: создали поток, назначили ему делегат, затем запустили его. Еще в какой-то другой части программы подписались на нужные события... - Все как бы "просто"...

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

наверное Вы правы, для пользователя проще набросать графических элементов в форму в VS2017, затем проверить путем запуска в VS свое творение, убедившись, что  "все крутится", он может переходить к созданию взаимодействия программы на .Net и МТ5

у меня немного другие были цели - запуск .Net из под МТ4, но МТ4 тяжело сразу добиться корректного маршалинга  , вот и получилось, что сделал .dll сначала под МТ5, а ее уже интегрирую в МТ4

Ваш путь наверное более практичный, чуть позже с проектом на гитхабе ознакомлюсь, однозначно ОГРОМНОЕ  СПАСИБО !

 
Igor Makanu:

наверное Вы правы, для пользователя проще набросать графических элементов в форму в VS2017, затем проверить путем запуска в VS свое творение, убедившись, что  "все крутится", он может переходить к созданию взаимодействия программы на .Net и МТ5

В точку попали! Поэтому система трехкомпонентная. Ну и принцип "разделяй и властвуй" в действии.

Igor Makanu:

у меня немного другие были цели - запуск .Net из под МТ4, но МТ4 тяжело сразу добиться корректного маршалинга  , вот и получилось, что сделал .dll сначала под МТ5, а ее уже интегрирую в МТ4

  У Вас все-таки проф. уровень. Ну и МТ4 конечно, немного другая история.

Igor Makanu:

Ваш путь наверное более практичный, чуть позже с проектом на гитхабе ознакомлюсь, однозначно ОГРОМНОЕ  СПАСИБО !

Вам спасибо за отзыв:))) 

 
Все, ждем Петра. Посмотрим на его "экспертную оценку" предложенного мной решения:) 
 

Мда, статья хорошая, правда не уверен, читали ли её редакторы ;-). "Помимо" пишется вместе, а везде по тексту - раздельно. Бросилось в глаза, потому что более или менее внимательно читал, по сравнению с прочими статьями.

По сути, вроде с одной стороны - хорошо. А с другой - тянуть всю лабуду, связанную со Студией, только для визуального редактора форм - как-то громоздко. Если Студия уже стоит - не вопрос.

Я б делал всё на MQL, вместе с дизайнером (идеи есть, руки не доходят). И вроде имеется еще промежуточный вариант - со Студией, но без DLL - дизайнить формы WPF, читать XAML в MQL.

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