Ошибки, баги, вопросы - страница 1743

 
Как в отладчике посмотреть, какое значение вернула функция через return? Ставлю точку останова на return. Как попадаю на нее, жму F10. Как теперь увидеть, что же вышло в return?
 
fxsaber:
Как в отладчике посмотреть, какое значение вернула функция через return? Ставлю точку останова на return. Как попадаю на нее, жму F10. Как теперь увидеть, что же вышло в return?
shift + F9 ('add watch')
но так как у вас все видимо на классах построено, то в скором времени можно ждать с десяток гневных писем как в Meta Editore ужасно, плохо, и не удобно с отладкой)) 
 
Наткнулся у себя на хороший пример
class A
{
public:
  void operator =( const string Value ) const { return; }

  void operator =( const int Value ) { return; }
};

void OnStart()
{
  const A a;

  a = 0; // implicit conversion from 'number' to 'string'
}
Не очевидно было в начале, почему предупреждение. Умный компилятор, однако.
 
Sergey Dzyublik:
shift + F9 ('add watch')
А что вносить-то туда?
 
Переменную в которую функция развращается значение.
Если ни куда не возвращает, или несколько вложенных вызовов - то создайте переменную, что бы можно было записать туда результат работы функции и отладить.
 
Sergey Dzyublik:
Переменную в которую функция развращается значение.
Если ни куда не возвращает, или несколько вложенных вызовов - то создайте переменную, что бы можно было записать туда результат работы функции и отладить.

Ну с переменной каждый умный может. А мне надо, как дураку - без нее.

Много вот таких функций

  virtual bool SetProperty( const ENUM_CHART_PROPERTY_INTEGER id, const int Value ) const
  {
    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));
  }

И теперь в каждую вставлять переменную? Иначе никак?

 
Почему OBJPROP_YOFFSET нельзя делать отрицательным? В Справке не стоит uint.
 
fxsaber:
 

И теперь в каждую вставлять переменную? Иначе никак?

Очевидно данные функции нужно переименовать:  GetPropertyLong, GetPropertyDbl.  Зачем им одинаковые имена-то?

В будущем разработчики обещали допилить шаблоны функций, чтобы можно было вызывать так:  GetProperty<long>(...).  Но виртуальным шаблон уже не сделаешь.

 
Alexey Navoykov:

Очевидно данные функции нужно переименовать:  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); // Цвет линии графика и японских свечей "Доджи"

this.SetProperty(CHART_FIXED_MAX, 1.5); // Фиксированный максимум графика
this.SetProperty(CHART_FIXED_MIN, 1.0); // Фиксированный минимум графика

В будущем разработчики обещали допилить шаблоны функций, чтобы можно было вызывать так:  GetProperty<long>(...).  Но виртуальным шаблон уже не сделаешь.

Не понял примера.

 

С удовольствием послушал бы Вашу (и других компетентных форумчан) критику (на полном серьезе) по архитектурной стилистике и програмисткому тону в адрес своего кода. Выложу в кодобазу, как доделаю. Учиться никогда не стыдно.

 
При попытке удалить индикатор, советник или скрипт из окна "Навигатор" MT4 запрашивает подтверждение на удаление. Так вот, не важно, что вы пытаетесь удалить (индикатор, советник или скрипт), текст вопроса от этого не меняется.

Универсальный вопрос "Удалить советника?"

MT4 Build 1010 (19 Aug 2016)