ChartSetInteger

指定されたチャートのプロパティに値を設定します。チャートプロパティは datetime、int、 bool または char型でなければなりません。コマンドは、チャートメッセージキューに追加され、以前の全てのコマンドの処理後に実行されます。

bool  ChartSetInteger(
  long                          chart_id,    // チャート識別子
  ENUM_CHART_PROPERTY_INTEGER    prop_id,      // プロパティ識別子
  long                          value        // 値
  );

 

bool  ChartSetInteger(
  long                          chart_id,    // チャート識別子
  ENUM_CHART_PROPERTY_INTEGER    prop_id,      // プロパティ識別子
  int                            sub_window,   // サブウィンドウ番号
  long                          value        // 値
  );

パラメータ

chart_id

[in]  チャート識別子。( 0 は現在のチャート)

prop_id

[in]  チャートプロパティ識別子。ENUM_CHART_PROPERTY_INTEGER の値の 1 つ (読み込み専用のプロパティを除いて)。

sub_window

[in]  チャートサブウィンドウの番号。最初のケースの場合、初期値は0(メインチャートウィンドウ)です。プロパティのほとんどは、サブウィンドウの番号を必要としません。

value

[in]  プロパティ値

戻り値

コマンドがチャートキューに追加された場合は true、そうでない場合は false。エラー情報を取得するには、GetLastError() 関数が呼ばれます。

注意事項

これは非同期関数です。つまり、この関数は、指定されたチャートのキューに正常に追加されたコマンドの実行を待たずに、すぐに制御を返します。プロパティは、チャートキューから適切なコマンドが処理された後にのみ変更されます。チャートキューからコマンドをすぐに実行するには ChartRedraw関数を呼び出します。

複数のチャートプロパティをすぐに一度に変更したい場合は、対応する関数( ChartSetStringChartSetDoubleChartSetString)を1つのコードブロックで実行してからChartRedrawを一回呼び出す必要があります。

コマンドの実行結果を確認するには、関数を使用して、指定されたチャートプロパティ(ChartGetIntegerChartGetDoubleChartSetString)をリクエストしますl。ただし、これらは同期関数であり、実行結果を待つことに注意してください。

例:

//+------------------------------------------------------------------+
//| エキスパート初期化関数                                               |
//+------------------------------------------------------------------+
void OnInit()
 {
//--- チャートウィンドウでのマウス移動イベントの有効化
  ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1);
//--- チャートプロパティを強制的に更新して、イベント処理の準備を整える
  ChartRedraw();
 }
//+------------------------------------------------------------------+
//| MouseState                                                       |
//+------------------------------------------------------------------+
string MouseState(uint state)
 {
  string res;
  res+="\nML: "   +(((state& 1)== 1)?"DN":"UP");   // 左
  res+="\nMR: "   +(((state& 2)== 2)?"DN":"UP");   // 右
  res+="\nMM: "   +(((state&16)==16)?"DN":"UP");   // 中央
  res+="\nMX: "   +(((state&32)==32)?"DN":"UP");   // 初めのXキー
  res+="\nMY: "   +(((state&64)==64)?"DN":"UP");   // 2番目のXキー
  res+="\nSHIFT: "+(((state& 4)== 4)?"DN":"UP");   // shiftキー
  res+="\nCTRL: " +(((state& 8)== 8)?"DN":"UP");   // Ctrlキー
  return(res);
 }
//+------------------------------------------------------------------+
//| ChartEvent関数                                                   |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
 {
  if(id==CHARTEVENT_MOUSE_MOVE)
    Comment("POINT: ",(int)lparam,",",(int)dparam,"\n",MouseState((uint)sparam));
 }