судя по сигнатуре функции void OnDeinit(const int reason) - это константы, а не перечисление, в справке, как Вы заметили, тоже нет ссылки или указания имени перечисления
если хотите в текстовом виде причину деинициализации видеть, я бы так попробовал сделать:
enum ENUM_REASON{REASON__PROGRAM,REASON__REMOVE,REASON__RECOMPILE,REASON__CHARTCHANGE,REASON__CHARTCLOSE,REASON__PARAMETERS,REASON__ACCOUNT,REASON__TEMPLATE,REASON__INITFAILED,REASON__CLOSE}; void OnDeinit(const int reason) { Print(EnumToString((ENUM_REASON)reason)); }
т.е. я создал пользовательское перечисление с похожими по названию списком значений (добавил дополнительный знак _ )
Print(typename(REASON_CLOSE)); // int
Кто может подсказать как называется enum причин деинициализации?
Другими словами, к какому enum относятся:
Константа |
Значение |
Описание |
REASON_PROGRAM |
0 |
Эксперт прекратил свою работу, вызвав функцию ExpertRemove() |
REASON_REMOVE |
1 |
Программа удалена с графика |
REASON_RECOMPILE |
2 |
Программа перекомпилирована |
REASON_CHARTCHANGE |
3 |
Символ или период графика был изменен |
REASON_CHARTCLOSE |
4 |
График закрыт |
REASON_PARAMETERS |
5 |
Входные параметры были изменены пользователем |
REASON_ACCOUNT |
6 |
Активирован другой счет либо произошло переподключение к торговому серверу вследствие изменения настроек счета |
REASON_TEMPLATE |
7 |
Применен другой шаблон графика |
REASON_INITFAILED |
8 |
Обработчик OnInit() вернул ненулевое значение |
REASON_CLOSE |
9 |
Терминал был закрыт |
Это не enum, а #define
На который не действует #undef.
Это не enum, а #define
На который не действует #undef.
а как Вы это определили? (что это #define )
На который не действует #undef.
а как Вы это определили? (что это #define )
Но на который прекрасно реагирует #ifdef
ОК, благодарю
было подозрение, что достаточно красного цвета в МЕ для #define - оказывается нужно чрез #ifdef проверять
ЗЫ: вопрос недавно себе задавал, в МТ4 работает TRUE , а в МТ5 будет ошибка нужно писать true , хотя МЕ что там что там подсветит TRUE красным, вот и не мог понять как эти константы в MQL получены
Быстро найти нужный enum
Любой enum - int. В чём соль?
наверное правильно, справка по enum находится в разделе: https://www.mql5.com/ru/docs/basis/types/integer/enumeration
Справочник MQL5 - Основы языка - Типы данных - Целые типы - Перечисления
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Кто может подсказать как называется enum причин деинициализации?
Другими словами, к какому enum относятся:
Константа
Значение
Описание
REASON_PROGRAM
0
Эксперт прекратил свою работу, вызвав функцию ExpertRemove()
REASON_REMOVE
1
Программа удалена с графика
REASON_RECOMPILE
2
Программа перекомпилирована
REASON_CHARTCHANGE
3
Символ или период графика был изменен
REASON_CHARTCLOSE
4
График закрыт
REASON_PARAMETERS
5
Входные параметры были изменены пользователем
REASON_ACCOUNT
6
Активирован другой счет либо произошло переподключение к торговому серверу вследствие изменения настроек счета
REASON_TEMPLATE
7
Применен другой шаблон графика
REASON_INITFAILED
8
Обработчик OnInit() вернул ненулевое значение
REASON_CLOSE
9
Терминал был закрыт