Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
вообще-то похоже по завершению функции start() происходит полное обнуление задействованной памяти, кроме глобальных переменных, в том числе и объектов созданных в длл, так что немодальное не получается, окно просто исчезает по завершению start(), а модальное блокирует дальнейшие действия как для текущего тика, так и для последующих, вот такое противоречие, с одной стороны start() написана как независимый поток, с другой все таки зависимый
то же самое и init(). так что шансов приделать доп. панельку нет, либо писать надо не через вызов из метатрейдера, вообщем пользоваться только в скриптах((
есть вариант который пока лень пробовать
идентификатор модального окна и контролов на нем запустить в глобальные переменные и открыть второй советник, один советник для открытия модального окна, второй для чтения и записи, думаю что сработает, всю эту логику можно уместить в одном советнике, если нет определенной глобальной переменной, то создаем ее и открываем окно, если такая переменная есть, то производим запись и чтение в открытом окне, надеюсь понятно объяснил
////////////////////////////
на двух графиках прекрасно получается, один график для удержания окна и изменения в нем, другой для чтения
А почему как скрипт работает, а как индикатор - нет?
...
Уфф.. обманул, заработало.. Так что не остановить.. Надо окошко сделать немодальным и убрать кнопку OK. Закрыть можно и по крестику. Иначе пока окошко не закроешь, до кнопок терминала не добраться. А оно на каждый тик выскакивает Ж-()
А так в принципе можно использовать как доп панельку. Немодальное, resizeable, AlwaysOnTop.
Класс!
Ни как не работает. Загружается и тут же вываливается не создавая ни какого окна.
2009.02.12 20:42:01 TestCreateForm GBPUSD,H1: removed
2009.02.12 20:42:01 TestCreateForm GBPUSD,H1: loaded successfully
В чем дело?
Вот тут я немного рассказал о своем решении проблемы комплексно MT/MATHCAD/VISSIM : https://forum.mql4.com/ru/18928/page10
А вот создать отдельную тему и подготовить к ней материал - времени совсем нет :о( Может быть кому то будет интересно. Уж чего чего, а GUI там много. :о) Меня привлекает по сути одно - экономия времени, не нужно ничего программировать.
Ни как не работает. Загружается и тут же вываливается не создавая ни какого окна.
2009.02.12 20:42:01 TestCreateForm GBPUSD,H1: removed
2009.02.12 20:42:01 TestCreateForm GBPUSD,H1: loaded successfully
В чем дело?
1. Не забудьте скопировать DCreateForm.dll в папку C:\Program Files\MetaTrader\experts\libraries\ (или как там у вас)
2. Не забудьте в настройках терминала (Сервис-Настройки-Советники) поставить отметки "Разрешить импорт DLL" и желательно снять с "Подтверждать вызов функций DLL"
После этого скриптовый тестовый вариант TestCreateForm будет работать.
есть вариант который пока лень пробовать
идентификатор модального окна и контролов на нем запустить в глобальные переменные и открыть второй советник....
на двух графиках прекрасно получается, один график для удержания окна и изменения в нем, другой для чтения
А если попробовать реализовать это как-нибудь по принципу объектов графика - они ведь не уничтожаются после завершения start() и постоянно хранят свои значения?
Например "подсунуть" создаваемое окно в функцию ObjectCreate().
Конечно очень жаль, что разработчики не учли такой мелочи и приходится извращаться...
вообще-то похоже по завершению функции start() происходит полное обнуление задействованной памяти, кроме глобальных переменных, в том числе и объектов созданных в длл, так что немодальное не получается, окно просто исчезает по завершению start(), а модальное блокирует дальнейшие действия как для текущего тика, так и для последующих, вот такое противоречие, с одной стороны start() написана как независимый поток, с другой все таки зависимый
то же самое и init(). так что шансов приделать доп. панельку нет, либо писать надо не через вызов из метатрейдера, вообщем пользоваться только в скриптах((
нужно просто форму в dll запускать в отдельном потоке , а в mql4 сделать зацикленный скрипт( с условием выхода из цикла IsStopped), тогда будет интерактивная работа панели и скрипта
например так
все остальные функции как обычно проводят обработку кнопок формы, только вызов через класс Form1