Переменную в которую функция развращается значение. Если ни куда не возвращает, или несколько вложенных вызовов - то создайте переменную, что бы можно было записать туда результат работы функции и отладить.
Sergey Dzyublik: Переменную в которую функция развращается значение. Если ни куда не возвращает, или несколько вложенных вызовов - то создайте переменную, что бы можно было записать туда результат работы функции и отладить.
Ну с переменной каждый умный может. А мне надо, как дураку - без нее.
Очевидно данные функции нужно переименовать: GetPropertyLong, GetPropertyDbl. Зачем им одинаковые имена-то?
Как раз не понимаю, зачем разные имена? Вот так использую
this.SetProperty(OBJPROP_XSIZE, (int)CHARTOBJECT::GetProperty(CHART_WIDTH_IN_PIXELS)); // Ширина объекта по оси X в пикселях this.SetProperty(OBJPROP_YSIZE, (int)CHARTOBJECT::GetProperty(CHART_HEIGHT_IN_PIXELS)); // Ширина объекта по оси Y в пикселях
this.SetProperty(OBJPROP_DATE_SCALE, false); // Признак отображения шкалы времени для объекта "График"
this.SetProperty(OBJPROP_BACK, false); // Объект на заднем плане
this.SetProperty(CHART_AUTOSCROLL, false); // Режим автоматического перехода к правому краю графика this.SetProperty(CHART_SHIFT, false); // Режим отступа ценового графика от правого края
this.SetProperty(CHART_SHOW_OHLC, false); // Отображение в левом верхнем углу значений OHLC this.SetProperty(CHART_SHOW_PERIOD_SEP, false); // Отображение вертикальных разделителей между соседними периодами this.SetProperty(CHART_SHOW_VOLUMES, CHART_VOLUME_HIDE); // Отображение объемов на графике this.SetProperty(CHART_SHOW_TRADE_LEVELS, false); // Отображение на графике торговых уровней (уровни открытых позиций, Stop Loss, Take Profit и отложенных ордеров)
this.SetProperty(CHART_MODE, CHART_LINE); // Тип графика (свечи, бары или линия) this.SetProperty(CHART_COLOR_CHART_LINE, clrNONE); // Цвет линии графика и японских свечей "Доджи"
this.SetProperty(CHART_SCALEFIX, true); // Цвет линии графика и японских свечей "Доджи"
В будущем разработчики обещали допилить шаблоны функций, чтобы можно было вызывать так: GetProperty<long>(...). Но виртуальным шаблон уже не сделаешь.
Не понял примера.
С удовольствием послушал бы Вашу (и других компетентных форумчан) критику (на полном серьезе) по архитектурной стилистике и програмисткому тону в адрес своего кода. Выложу в кодобазу, как доделаю. Учиться никогда не стыдно.
При попытке удалить индикатор, советник или скрипт из окна "Навигатор" MT4 запрашивает подтверждение на удаление. Так вот, не важно, что вы пытаетесь удалить (индикатор, советник или скрипт), текст вопроса от этого не меняется.
Как раз не понимаю, зачем разные имена? Вот так использую
this.SetProperty(OBJPROP_XSIZE, (int)CHARTOBJECT::GetProperty(CHART_WIDTH_IN_PIXELS)); // Ширина объекта по оси X в пикселях this.SetProperty(OBJPROP_YSIZE, (int)CHARTOBJECT::GetProperty(CHART_HEIGHT_IN_PIXELS)); // Ширина объекта по оси Y в пикселях
Не понял примера.
Я невнимательно посмотрел сначала, думал у вас перегрузка только по возвращаемому значению. А раз и по аргументу тоже, тогда всё ок. Ну тогда я не в курсе, о чём идёт разговор. Исходные посты, откуда взяты цитаты, я не нашёл в этой ветке.
Затем, что перегрузка по типу возвращаемого значения невозможна.
Да и по логике, вам в любом случае надо как-то указать, какую именно из функций нужно вызвать. Не логичней ли этот тип задать в имени функции. Да собственно других вариантов то и нет. Вариант с шаблоном тут бы не подошёл, ну точнее пришлось бы ещё городить пляски с бубнами на ровном месте.
shift + F9 ('add watch')
Если ни куда не возвращает, или несколько вложенных вызовов - то создайте переменную, что бы можно было записать туда результат работы функции и отладить.
Переменную в которую функция развращается значение.
Если ни куда не возвращает, или несколько вложенных вызовов - то создайте переменную, что бы можно было записать туда результат работы функции и отладить.
Ну с переменной каждый умный может. А мне надо, как дураку - без нее.
Много вот таких функций
{
return(::ChartSetInteger(this.chartID, id, Value));
}
virtual bool SetProperty( const ENUM_CHART_PROPERTY_DOUBLE id, const double Value ) const
{
return(::ChartSetDouble(this.chartID, id, Value));
}
virtual long GetProperty( const ENUM_CHART_PROPERTY_INTEGER Property, const int SubWindow = 0 ) const
{
return(::ChartGetInteger(this.chartID, Property, SubWindow));
}
virtual double GetProperty( const ENUM_CHART_PROPERTY_DOUBLE Property, const int SubWindow = 0 ) const
{
return(::ChartGetDouble(this.chartID, Property, SubWindow));
}
И теперь в каждую вставлять переменную? Иначе никак?
И теперь в каждую вставлять переменную? Иначе никак?
Очевидно данные функции нужно переименовать: GetPropertyLong, GetPropertyDbl. Зачем им одинаковые имена-то?
В будущем разработчики обещали допилить шаблоны функций, чтобы можно было вызывать так: GetProperty<long>(...). Но виртуальным шаблон уже не сделаешь.
Очевидно данные функции нужно переименовать: GetPropertyLong, GetPropertyDbl. Зачем им одинаковые имена-то?
Как раз не понимаю, зачем разные имена? Вот так использую
this.SetProperty(OBJPROP_YSIZE, (int)CHARTOBJECT::GetProperty(CHART_HEIGHT_IN_PIXELS)); // Ширина объекта по оси Y в пикселях
this.SetProperty(OBJPROP_DATE_SCALE, false); // Признак отображения шкалы времени для объекта "График"
this.SetProperty(OBJPROP_BACK, false); // Объект на заднем плане
this.SetProperty(CHART_AUTOSCROLL, false); // Режим автоматического перехода к правому краю графика
this.SetProperty(CHART_SHIFT, false); // Режим отступа ценового графика от правого края
this.SetProperty(CHART_SHOW_OHLC, false); // Отображение в левом верхнем углу значений OHLC
this.SetProperty(CHART_SHOW_PERIOD_SEP, false); // Отображение вертикальных разделителей между соседними периодами
this.SetProperty(CHART_SHOW_VOLUMES, CHART_VOLUME_HIDE); // Отображение объемов на графике
this.SetProperty(CHART_SHOW_TRADE_LEVELS, false); // Отображение на графике торговых уровней (уровни открытых позиций, Stop Loss, Take Profit и отложенных ордеров)
this.SetProperty(CHART_MODE, CHART_LINE); // Тип графика (свечи, бары или линия)
this.SetProperty(CHART_COLOR_CHART_LINE, clrNONE); // Цвет линии графика и японских свечей "Доджи"
this.SetProperty(CHART_SCALEFIX, true); // Цвет линии графика и японских свечей "Доджи"
this.SetProperty(CHART_FIXED_MAX, 1.5); // Фиксированный максимум графика
this.SetProperty(CHART_FIXED_MIN, 1.0); // Фиксированный минимум графика
В будущем разработчики обещали допилить шаблоны функций, чтобы можно было вызывать так: GetProperty<long>(...). Но виртуальным шаблон уже не сделаешь.
Не понял примера.
С удовольствием послушал бы Вашу (и других компетентных форумчан) критику (на полном серьезе) по архитектурной стилистике и програмисткому тону в адрес своего кода. Выложу в кодобазу, как доделаю. Учиться никогда не стыдно.
MT4 Build 1010 (19 Aug 2016)
Как раз не понимаю, зачем разные имена? Вот так использую
this.SetProperty(OBJPROP_YSIZE, (int)CHARTOBJECT::GetProperty(CHART_HEIGHT_IN_PIXELS)); // Ширина объекта по оси Y в пикселях
Не понял примера.
Я невнимательно посмотрел сначала, думал у вас перегрузка только по возвращаемому значению. А раз и по аргументу тоже, тогда всё ок. Ну тогда я не в курсе, о чём идёт разговор. Исходные посты, откуда взяты цитаты, я не нашёл в этой ветке.
Затем, что перегрузка по типу возвращаемого значения невозможна.
Да и по логике, вам в любом случае надо как-то указать, какую именно из функций нужно вызвать. Не логичней ли этот тип задать в имени функции. Да собственно других вариантов то и нет. Вариант с шаблоном тут бы не подошёл, ну точнее пришлось бы ещё городить пляски с бубнами на ровном месте.
Привел Вам рабочий код - пашет без проблем.