エラー、バグ、質問 - ページ 1743

 
関数が return で返した値をデバッガで確認するにはどうしたらいいですか?returnでブレークポイントを 置いた。たどり着いたら、F10を押す。リターンで出てきたものを見るにはどうしたらいいですか?
 
fxsaber:
関数が return で返した値をデバッガで確認するにはどうしたらいいですか?returnでブレークポイントを置いた。たどり着いたら、F10を押す。リターンの中身を見るには?
shift + F9(「時計を追加」)。
しかし、どうやらあなたのコードのすべてがクラスで構築されているようなので、Meta Editoreがいかに恐ろしく、悪く、デバッグに不便であるかを説明する怒りの手紙が1ダースほど期待できるでしょう))
 
私の中で良い例に巡り会えた
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(「時計を追加」)。
何を追加するのか?
 
関数が値を返す変数。
もし、どこにも戻らなかったり、ネストした呼び出しがいくつかある場合は、変数を作成し、そこに関数の結果を書き込んでデバッグできるようにします。
 
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はなぜマイナスにできないのですか?Helpに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>(...) しかし、テンプレートを仮想化することはできない。

例えがよくわからない。

私のコードに対する建築様式やプログラマーズトーンについて、あなた(や他の有能なフォーラムユーザーの)批評を(真面目に)聞いていただけると幸いです。完成次第、kodobaseに投稿します。学ぶことは決して恥ずかしいことではありません。

 
Navigator」ウィンドウからインジケーター、Expert Advisor、スクリプトを削除しようとすると、MT4から削除の確認があります。そのため、何を削除しようとしても(インジケータ、EA、スクリプト)、質問文は変わりません。

普遍的な質問 "EAを削除しますか?"

MT4 ビルド1010 (2016年8月19日)