Ошибки, баги, вопросы - страница 1160
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
v4.3, кастомная прошивка.
Основное окно - ландшафтное положение, остальные диалоговые окна (ордера) - портретные. Раздражает неконтролируемое переключение туда/обратно с основного окна на диалоговые.
А на официальной прошивке такая проблема была ? Если нет, то попробуйте поэкспериментировать с настройками экрана в кастомной прошивке
Пожелание к разработчикам. Добавьте пожалуйста функцию для получения значения reserve_size указанного массива, т.е. ArrayReserveSize(array). Иначе возникают неудобства, если мы передаём этот массив в какую-то функцию, которая может менять его размер, но ничего не знает о его reserve_size, и в итоге потом получим лишнюю переаллокацию памяти.
Либо же можно сделать так, что если в функции ArrayResize третьим параметром указывается -1 (т.е. ArrayResize(array, size, -1)), то используется предыдущее значение reserve_size.
А в идеале нужны функции ArrayCapacity и ArraySetCapacity для явного управления размером распределённой памяти под массив.
Пожелание к разработчикам. Добавьте пожалуйста функцию для получения значения reserve_size указанного массива, т.е. ArrayReserveSize(array). Иначе возникают неудобства, если мы передаём этот массив в какую-то функцию, которая может менять его размер, но ничего не знает о его reserve_size, и в итоге потом получим лишнюю переаллокацию памяти.
Либо же можно сделать так, что если в функции ArrayResize третьим параметром указывается -1 (т.е. ArrayResize(array, size, -1)), то используется предыдущее значение reserve_size.
А в идеале нужны функции ArrayCapacity и ArraySetCapacity для явного управления размером распределённой памяти под массив.
А что Вам мешает объявить константу, таким образом:
#define MY_RESERVE_SIZE = 1000
А что Вам мешает объявить константу, таким образом:
#define MY_RESERVE_SIZE = 1000
Почему обязательно константу? Значение может подбираться в процессе выполнения программы. Кроме того, функция может быть универсальная, не привязанная к вашему конкретному массиву, и может быть расположена в отдельном модуле/библиотеке, так что ваш макрос там совсем не к месту.
Но не суть. Пока так и приходится обходится: либо заводить дополнительную переменную для хранения значения, либо же передавать отдельным параметром в функцию. А это всё лишние танцы с бубном, о чём и идёт речь.
Пожелание к разработчикам. Добавьте пожалуйста функцию для получения значения reserve_size указанного массива, т.е. ArrayReserveSize(array). Иначе возникают неудобства, если мы передаём этот массив в какую-то функцию, которая может менять его размер, но ничего не знает о его reserve_size, и в итоге потом получим лишнюю переаллокацию памяти.
Либо же можно сделать так, что если в функции ArrayResize третьим параметром указывается -1 (т.е. ArrayResize(array, size, -1)), то используется предыдущее значение reserve_size.
А в идеале нужны функции ArrayCapacity и ArraySetCapacity для явного управления размером распределённой памяти под массив.
Для этих задач существует стандартный класс CArray и его производные. Сервисные обвязки должны делегироваться на более высокий, абстрактный уровень что CArray и выполняет.
Класс CArray - не панацея, учитывая что MQL не поддерживает шаблоны классов. Наш массив ведь необязательно состоит из простых типов. А создавать в программе полную структуру потомка CArray для каждого нового класса - это не очень интересно. Посмотрите сколько строчек кода занимает каждый файл с потомком CArray (ArrayInt.mqh, ArrayDouble.mqh и т.д.)
Да и как организована структура программы - это уже вторично. Не будем отклоняться от темы. Суть в том, что если имеется некоторый параметр, который можно менять (в данном случае это reserve_size), то должна быть предусмотрена возможность его получить.
v4.3, кастомная прошивка.
Основное окно - ландшафтное положение, остальные диалоговые окна (ордера) - портретные. Раздражает неконтролируемое переключение туда/обратно с основного окна на диалоговые.
ну надо же.... не помогают даже специализированные проги типа Smart Rotator....
забавно, но если выставить принудительно ландшафт в Smart Rotator для терминала, то все окна действительно становятся ландшафтными. но я хочу портретный! - ставлю в настройках портретный режим для терминала, и что? - хе хе... всё также некоторые окна ландшафтные, а некоторые портретные.
Недоработка в метаэдиторе.
Допустим у нас есть некая функция Obj(), возвращающая указатель на объект:
Теперь если мы будем обращаться к объекту непосредственно через функцию: Obj().value = 10, то после ввода точки не появляется всплывающий список членов и методов класса.