Ошибки, баги, вопросы - страница 1161
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
v4.3, кастомная прошивка.
Основное окно - ландшафтное положение, остальные диалоговые окна (ордера) - портретные. Раздражает неконтролируемое переключение туда/обратно с основного окна на диалоговые.
ну надо же.... не помогают даже специализированные проги типа Smart Rotator....
забавно, но если выставить принудительно ландшафт в Smart Rotator для терминала, то все окна действительно становятся ландшафтными. но я хочу портретный! - ставлю в настройках портретный режим для терминала, и что? - хе хе... всё также некоторые окна ландшафтные, а некоторые портретные.
Недоработка в метаэдиторе.
Допустим у нас есть некая функция Obj(), возвращающая указатель на объект:
Теперь если мы будем обращаться к объекту непосредственно через функцию: Obj().value = 10, то после ввода точки не появляется всплывающий список членов и методов класса.
Класс CArray - не панацея, учитывая что MQL не поддерживает шаблоны классов. Наш массив ведь необязательно состоит из простых типов. А создавать в программе полную структуру потомка CArray для каждого нового класса - это не очень интересно. Посмотрите сколько строчек кода занимает каждый файл с потомком CArray (ArrayInt.mqh, ArrayDouble.mqh и т.д.)
Да и как организована структура программы - это уже вторично. Не будем отклоняться от темы. Суть в том, что если имеется некоторый параметр, который можно менять (в данном случае это reserve_size), то должна быть предусмотрена возможность его получить.
Сложные типы наследуются от CObject и благополучно пакуются в CArrayObj.
reserve_size - нарушает парадигму экономного программирования. Она существует только для новичков и в нормальных языках ее быть не должно вообще.
reserve_size - нарушает парадигму экономного программирования. Она существует только для новичков и в нормальных языках ее быть не должно вообще.
Странная у вас парадигма. Резервирование как-раз и предназначено для экономного использовании ресурсов, сокращая количество перевыделений памяти и перемещения данных (а это довольно затратные операции). И управлять этим параметром должен именно разработчик кода, т.к. только он знает заранее, как его программа будет использовать память. А с языком это вообще не связано, ибо массив - он и в Африке массив, под него везде требуется память.
Странная у вас парадигма. Резервирование как-раз и предназначено для экономного использовании ресурсов, сокращая количество перевыделений памяти и перемещения данных (а это довольно затратные операции). И управлять этим параметром должен именно разработчик кода, т.к. только он знает заранее, как его программа будет использовать память. А с языком это вообще не связано, ибо массив - он и в Африке массив, под него везде требуется память.
Вот Вы сами и ответили на свой вопрос:
С языковыми средствами это не связано, а значит должно решатся на более высоком, пользовательском уровне. Вот и решайте с помощью специально созданных для этих задач CArray* классов, которые к слову, справляются с этой задачей блестяще и словно для нее и созданы.
Странная у вас парадигма. Резервирование как-раз и предназначено для экономного использовании ресурсов, сокращая количество перевыделений памяти и перемещения данных (а это довольно затратные операции)...
Суперэкономный код. Перевыделений памяти не происхсодит вообще, т.к. заранее известно количество элементов. Передаются не массивы, а указатели по ним. Скорость невероятно быстрая, и никакой reserv_size не нужен. Чем это решение Вас не устраивает?
Эх, если б всё было так просто... В реальных условиях количество элементов заранее не известно, как правило. И более того, это количество меняется динамически. Так что ваш упрощённый пример из серии "Hello world" бессмысленен. И его можно заменить всего двумя строчками:
В общем, к чему весь этот флуд? Если вы лично не используете параметр reserve_size, то ради бога. Только не стоит из этого делать вывод, что все остальные дураки или новички. Возможно вы просто чего-то не понимаете. В стандартных контейнерах STL, предназначенных для работы с массивами (vector, string и др.) тоже всегда присутствуют такие методы как reserve и capacity.
ну надо же.... не помогают даже специализированные проги типа Smart Rotator....
забавно, но если выставить принудительно ландшафт в Smart Rotator для терминала, то все окна действительно становятся ландшафтными. но я хочу портретный! - ставлю в настройках портретный режим для терминала, и что? - хе хе... всё также некоторые окна ландшафтные, а некоторые портретные.
В последнем билде перестал нормально работать поиск в Метаэдиторе (окошко в правом верхнем углу) . Когда ввожу туда искомое слово, он автоматически заменяет его на какое-то похожее словосочетание, взятое непонятно откуда и непонятно зачем. В итоге найти что-либо в своём коде становится невозможным. К примеру, пытаюсь найти переменную с именем "ERROR_VALUE", а вместо этого в поисковой строке получаю "error_value 7".
Вопрос: что за дела? Откуда берётся этот левый мусор в поисковой строке и как его убрать?
В последнем билде перестал нормально работать поиск в Метаэдиторе (окошко в правом верхнем углу) . Когда ввожу туда искомое слово, он автоматически заменяет его на какое-то похожее словосочетание, взятое непонятно откуда и непонятно зачем. В итоге найти что-либо в своём коде становится невозможным. К примеру, пытаюсь найти переменную с именем "ERROR_VALUE", а вместо этого в поисковой строке получаю "error_value 7".
Вопрос: что за дела? Откуда берётся этот левый мусор в поисковой строке и как его убрать?