Мой подход. Ядро - Движок. - страница 61

 
Dmitry Fedoseev:

Можно сделать примерно так: в dll массив или два массива, один для имени объекта, второй для типа события

вот!

еще не проверял, но если разработчики авансировали поддержку C#.Net , то возможно работает обмен и сложными типами данными между МТ5 и .dll, т.е. структуры

если обмен структурами работает, вообще задача упрощается и до примитивизма сводится, как пример хотим в форме повторить информацию терминала вкладка "Торговля"

на тике заполняем структуру с ОрдерПрофит,ОрдерТикет,ОрдерСтоплосс.... и отправляем в .dll эту структуру и получаем структуру ответа что там юзер накликал ... и все, дальше форма сама там крутит визуальную инфу, терминал сам по себе


Реter Konow:

А потом создать ОБЩУЮ память внутри ДЛЛ.

При росте количества элементов формы и усложнении функционала программы на МТ5, это взаимодействие становится НЕРЕАЛЬНО загруженным и сложным.

хм, что тут сложного? Вы разделите отдельно визуализацию = .dll, отдельно работа МТ

сложно Вам обьяснить, Вы хоть представляете какая скорость обмена данными через память? - там речь идет не о сотне тысяч байт в секунду, и даже не о миллионах, несколько миллиардов байт в секунду, и Вы говорите о сложностях обмена )))))

 
Реter Konow:

Ок. 

Значит, нужно:

  1. Создать ДЛЛ.
  2. Подключить ДЛЛ к виндоус приложению с формой.
  3. Написать методы транслирующие события нажатия на кнопки и чекбоксы в длл. 
  4. Написать методы изменяющие состояния кнопок и чекбоксов в виндоус приложении.
  5. Создать в ДЛЛ общую память. Чтобы при обращении из МТ5, ставился флаг изменения состояния кнопок и чекбоксов. Потом, виндоус приложение обращалось к общей памяти, считывало флаги и по ним узнавало, что нужно изменить состояние того или иного элемента формы.
  6. Написать цикличное обращение к ДЛЛ из таймера в МТ5 для считывания флагов вызовов функций или ввода текста в поля.

    А если элементов сотни?

    Как правильно организовать общую память? 

    Что если нужно менять не только нажатое/отжатое состояние элементов в форме, но и цвет (например у кнопок)?

    Что если нужно программно из МТ5 менять текст в полях ввода в форме? 


    1. В чем проблема? Это выбор типа проекта при его создании.

    2. Как видели в примере показанном Игорем, подключение выполняется одной строчкой, даже импорт описывать не надо.

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

    4. Наверно надо, но они простые. Скорее всего не все потребуются, будет же свое взаимодействие между элементами управления в c#, может быть наружу вывести надо будет одно событие, а на форме при этом 100 кнопок.

    5. Это к пункту 3 относится. 

    6. Тоже одна строка при правильном подходе в пункте 3.

    7 - В ваших руках вся мощь С#, о масштабах который вы кажется не имеете представления, одна громадна.

     
    Реter Konow:

    Без обид, но жаль, что не по делу.

    Вы берете НАИПРОСТЕЙШИЙ пример и экстраполируете его, считая что сложность возрастать не будет. Это ошибка.

    Даже наипростейший пример Вы привели неверный. Потому что помимо созданной формы, нужно создать еще и ДЛЛ. А потом создать ОБЩУЮ память внутри ДЛЛ.

    При росте количества элементов формы и усложнении функционала программы на МТ5, это взаимодействие становится НЕРЕАЛЬНО загруженным и сложным.

    Я это все на практике проверял.

    Вывод совершенно неверный.

     

    Проблема в том, что я РЕАЛЬНО делал то, о чем говорю. И знаю, какова сложность организации взаимодействия между сложной МТ-программой и сложной сторонней программой.

    А дилетантский подход обычно и заключается в словах "Да это же просто... Какие проблемы? Тут так, это так...".

    Предоставьте пример подключения сложной МТ-программы к сложной виндоус форме, где прогрограмма может:

    1. Менять состояния элементов и выводить текст в поля ввода.
    2. Где программа может принимать текст из полей ввода фомы и менять цвета элементов. 
    3. Где программа может управлять явлением окон формы (открывать одни и закрывать другие).
    Я могу предоставить пример этого, который полностью работает на МТ. 

     
    Реter Konow:

    Проблема в том, что я РЕАЛЬНО делал то, о чем говорю. И знаю, какова сложность организации взаимодействия между сложной МТ-программой и сложной сторонней программой.

    А дилетантский подход обычно и заключается в словах "Да это же просто... Какие проблемы? Тут так, это так...".

    Предоставьте пример подключения сложной МТ-программы к сложной виндоус форме, где прогрограмма может:

    1. Менять состояния элементов и выводить текст в поля ввода.
    2. Где программа может принимать текст из полей ввода фомы и менять цвета элементов. 
    3. Где программа может управлять явлением окон формы (открывать одни и закрывать другие).
    Я могу предоставить пример этого, который полностью работает на МТ. 

    Если бы делали то не задавали бы такие вопросы как сегодня. Изучайте c# и делайте сами. Как подключать dll и вызывать методы Игорь вчера показал.

     
    Dmitry Fedoseev:

    1. В чем проблема? Это выбор типа проекта при его создании.

    2. Как видели в примере показанном Игорем, подключение выполняется одной строчкой, даже импорт описывать не надо.

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

    4. Наверно надо, но они простые. Скорее всего не все потребуются, будет же свое взаимодействие между элементами управления в c#, может быть наружу вывести надо будет одно событие, а на форме при этом 100 кнопок.

    5. Это к пункту 3 относится. 

    6. Тоже одна строка при правильном подходе в пункте 3.

    7 - В ваших руках вся мощь С#, о масштабах который вы кажется не имеете представления, одна громадна.

    Дмитрий, используйте ГРОМАДНУЮ мощь С# и сделайте не очень сложное приложение с формой, которое взаимодействует с МТ-приложением и выполняет эти пункты:

    1. Меняет состояния элементов и выводит текст в поля ввода.
    2. Принимает текст из полей ввода фомы и меняет цвета элементов. 
    3. Управляет явлением окон формы (открывает одни и закрывает другие).
    Игорь и Вы утверждаете, что это очень легко. Значит справитесь быстро. Я предоставлю аналог полностью на МТ. И мы сравним качество выполнения и сложность.
     
    Реter Konow:

    Дмитрий, используйте ГРОМАДНУЮ мощь С# и сделайте не очень сложное приложение с формой, которое взаимодействует с МТ-приложением и выполняет эти пункты:

    1. Меняет состояния элементов и выводит текст в поля ввода.
    2. Принимает текст из полей ввода фомы и менять цвета элементов. 
    3. Управляет явлением окон формы (открывает одни и закрывает другие).
    Игорь и Вы утверждаете, что это очень легко. Значит справитесь быстро. Я предоставлю аналог полностью на МТ. И мы сравним качество выполнения и сложность.

    Мне есть чем заняться. Но вы можете продолжать оставаться в своих заблуждениях.

     

    И о да, чудо невиданное в программировании - что бы что-то сделать, надо писать функцию для этого.

     
    Dmitry Fedoseev:

    Мне есть чем заняться. ...

    Ладно, может Игорь тогда сделает...

     
    Реter Konow:

    Ладно, может Игорь тогда сделает...

    Игорь уже и так слишком много показал. А я слишком много рассказал.

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