Здравствуйте. Хочу написать торговую панель для советника в двух версиях 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
Спасибо, что-то начало проясняться) А можете дать ссылку на документацию по теме макросов?
Не ясно в чем вопрос и где выдает ошибку. Если у Вас переменная err типа int, то для чего в закомментированной строке Вы ее пытаетесь преобразовать из типа string в int? В каком месте именно возникает ошибка?
Не ясно в чем вопрос и где выдает ошибку. Если у Вас переменная err типа int, то для чего в закомментированной строке Вы ее пытаетесь преобразовать из типа string в int? В каком месте именно возникает ошибка?
В том-то и дело,что ошибки я не вижу,а предупреждение выдает implicut convertion integer to string.Подозреваю,что ошибка в компиляторе, хотя и в это верится с трудом. В любом случае, надо разобраться.
buyanov: пеменная err описана как integer Непонятно,в чем проблема Получил сообщение
В сообщении компилятора указана строка и позиция ошибки. Можно щелкнуть по строке с описанием (нижняя строка на рисунке) и курсор укажет ошибку в тексте программы. Функция 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 все равно осталось, видно терминал таки придется переустанавливать.
buyanov: сделал,как Вы рекомендовали поставил в функцию Ondеinit строку err=StringToInteger((string)err);ошибку не выдает.
но предупреждение implicit convthtion from string to number все равно осталось, видно терминал таки придется переустанавливать.
Выложите свою функцию OnDeinit - посмотрю. И сообщите, чего от нее хотите. Ошибку выдает MetaEditor. Имейте копию папки терминала. Вот здесь Alexey Viktorovсказал, как быстро переустановить
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Здравствуйте. Хочу написать торговую панель для советника в двух версиях 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 сказал, как быстро переустановить