Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 251
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте. Хочу написать торговую панель для советника в двух версиях mql4 и mql5. С графическими объектами пока знаком мало, для создания подвижного меню использовал пример из класса CLabel стандартной библиотеки. В mql5 меню работает замечательно, а в mql4 нет. При смене периода графика объекты меню дублируются, их расположение относительно друг друга меняется. Наверно в mql4 в классе CLabel не хватает каких-то методов, которые есть в mql5? Может подскажите что нужно дополнительно прописать в этом классе, чтобы таких проблем не возникало.
Также в коде примера к классу CLabel мне не ясно,ч что выполняют эти строки:
Здравствуйте. Хочу написать торговую панель для советника в двух версиях mql4 и mql5. С графическими объектами пока знаком мало, для создания подвижного меню использовал пример из класса CLabel стандартной библиотеки. В mql5 меню работает замечательно, а в mql4 нет. При смене периода графика объекты меню дублируются, их расположение относительно друг друга меняется. Наверно в mql4 в классе CLabel не хватает каких-то методов, которые есть в mql5? Может подскажите что нужно дополнительно прописать в этом классе, чтобы таких проблем не возникало.
Также в коде примера к классу CLabel мне не ясно,ч что выполняют эти строки:
Указанные строки являются макросами, которые прописаны в файле Defines.mqh. Если дословно, то первая строка макроса передает управление в функцию обработки событий класса CControlsDialog, затем выполняются функции, прописанные между этими макросами, последний макрос передает управление классу CAppDialog
Указанные строки являются макросами, которые прописаны в файле Defines.mqh. Если дословно, то первая строка макроса передает управление в функцию обработки событий класса CControlsDialog, затем выполняются функции, прописанные между этими макросами, последний макрос передает управление классу CAppDialog
Спасибо, что-то начало проясняться) А можете дать ссылку на документацию по теме макросов?
Спасибо, что-то начало проясняться) А можете дать ссылку на документацию по теме макросов?
https://www.mql5.com/ru/docs/basis/preprosessor/constant
int OnDeinit()
{
Alert("beg OnDeinit()");
// err=StringToInteger(err);
//------------------------
return(0);
Alert("end OnDeinit()");
}
//OnDeinit();-----------
пеменная err описана как integer
Непонятно,в чем проблема
Получил сообщение
int OnDeinit()
{
Alert("beg OnDeinit()");
// err=StringToInteger(err);
//------------------------
return(0);
Alert("end OnDeinit()");
}
//OnDeinit();-----------
пеменная err описана как integer
Непонятно,в чем проблема
Получил сообщение
Не ясно в чем вопрос и где выдает ошибку. Если у Вас переменная err типа int, то для чего в закомментированной строке Вы ее пытаетесь преобразовать из типа string в int? В каком месте именно возникает ошибка?
Не ясно в чем вопрос и где выдает ошибку. Если у Вас переменная err типа int, то для чего в закомментированной строке Вы ее пытаетесь преобразовать из типа string в int? В каком месте именно возникает ошибка?
В сообщении компилятора указана строка и позиция ошибки. Можно щелкнуть по строке с описанием (нижняя строка на рисунке) и курсор укажет ошибку в тексте программы. Функция DeInit выполняется перед самым удаление индикатора или советника с графика. Здесь, например, могут удаляться созданные графические элементы. Если действия, которые следует выполнять, отсутствуют (функция пустая) - функцию можно удалить... Если у Вас что-то вроде string x=125 исправьте на string x = (string)125
Вместо err=StringToInteger(err); лучше подойдет err=StringToInteger((string)err); хоть это и покажется кому-то смешным
В сообщении компилятора указана строка и позиция ошибки. Можно щелкнуть по строке с описанием (нижняя строка на рисунке) и курсор укажет ошибку в тексте программы. Функция DeInit выполняется перед самым удаление индикатора или советника с графика. Здесь, например, могут удаляться созданные графические элементы. Если действия, которые следует выполнять, отсутствуют (функция пустая) - функцию можно удалить... Если у Вас что-то вроде string x=125 исправьте на string x = (string)125
Вместо err=StringToInteger(err); лучше подойдет err=StringToInteger((string)err); хоть это и покажется кому-то смешным
мдас...
сделал,как Вы рекомендовали
поставил в функцию Ondеinit строку err=StringToInteger((string)err);ошибку не выдает.
но предупреждение implicit convthtion from string to number все равно осталось, видно терминал таки придется переустанавливать.
но предупреждение implicit convthtion from string to number все равно осталось, видно терминал таки придется переустанавливать.
Выложите свою функцию OnDeinit - посмотрю. И сообщите, чего от нее хотите. Ошибку выдает MetaEditor. Имейте копию папки терминала. Вот здесь Alexey Viktorov сказал, как быстро переустановить