ObjectGetInteger 関数
この関数は、引数にチャートIDとオブジェクト名を指定して、そのオブジェクトのプロパティ値 (int・bool・color・datetime・char型)を取得します。
取得するオブジェクトプロパティは整数型である必要があります。
ObjectGet関数と動作は似ていますが、引数にチャートIDの使用有無で違いがあります。
データ型と構成・戻り値
データ型は 2種類あります。
long ObjectGetInteger(①, ②, ③, ④);
bool ObjectGetInteger(①, ②, ③, ④, ⑤);戻り値は、指定したオブジェクトのプロパティ値を返します。
bool型の戻り値は、⑤に値が設定されプロパティ値が成立する場合 ture、それ以外は falseを返します。
発生するエラーについては、GetLastError関数で取得することができます。
引数 [5]
ObjectGetInteger関数は 5個の引数で構成されます。
| 番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 | 
|---|---|---|---|---|---|
| ① | chart_id | long | - | - | チャートIDを指定します。現在のチャートIDは「0」を指定するか、ChartID関数を使うことで取得できます。 | 
| ② | object_name | string | - | - | チャート上に描画されているオブジェクト名を指定します。 | 
| ③ | prop_id | int | - | - | オブジェクトのプロパティID。 ENUM_OBJECT_PROPERTY_INTEGER 列挙値から選択。 | 
| ④ | prop_modifier | int | - | 0 | 指定したプロパティの修飾子。 これは、フィボナッチツールとオブジェクトタイプの OBJ_PITCHFORK で必要になります。 | 
| ⑤ | long_var | long& | - | - | 取得したプロパティ値を設定します。 | 
使用例
ObjectGetInteger関数によるオブジェクトプロパティ値の取得①
ObjectCreate関数で描画したオブジェクトを ObjectGetInteger関数を使って描画した次の①②③のプロパティ値を取得します。
 ①垂直線の色を取得します。取得の際にカラー名で表示されるようキャストします。
 ②水平線のスタイルを取得します。水平線のスタイル種類はこちら。
 ③矢印の幅と色を取得します。色は①同様キャストします。
コード
// ObjectGetInteger関数によるオブジェクトタイプの取得①
#property strict
void OnInit() {
ObjectsDeleteAll();                                                         // オブジェクト全削除
ObjectCreate("obj1", OBJ_VLINE, 0, Time[10], 0);                            // ①垂直線
ObjectCreate("obj2", OBJ_HLINE, 0, 0, Ask);                                 // ②水平線
ObjectCreate("obj3", OBJ_ARROW, 0, Time[5], Bid);                           // ③矢印
Print("①の色      :", (color)ObjectGetInteger(0,"obj1", OBJPROP_COLOR));  // ①の色を取得
Print("②のスタイル:", ObjectGetInteger(0,"obj2", OBJPROP_STYLE));         // ②のスタイルを取得
Print("③矢印の線幅:", ObjectGetInteger(0,"obj3", OBJPROP_WIDTH));         // ③矢印の線幅を取得
Print("③矢印の色  :", (color)ObjectGetInteger(0,"obj3", OBJPROP_COLOR));  // ③矢印の色を取得
}
void OnDeinit(const int reason) {
   ObjectsDeleteAll();
}コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果

ObjectGetInteger関数によるオブジェクトプロパティ値の取得②
ObjectCreate関数で描画したオブジェクトを ObjectSetInteger関数を使ってスタイルをセットした後、ObjectGetInteger関数を使って描画した次の①②③のプロパティ値を取得します。
 ①垂直線の色を取得します。取得の際にカラー名で表示されるようキャストします。
 ②水平線のスタイルを取得します。水平線のスタイル種類はこちら。
 ③矢印の幅と色を取得します。色は①同様キャストします。
コード
// ObjectGetInteger関数によるオブジェクトタイプの取得②
#property strict
void OnInit() {
ObjectsDeleteAll();                                                         // オブジェクト全削除
ObjectCreate("obj1", OBJ_VLINE, 0, Time[10], 0);                            // ①垂直線
ObjectCreate("obj2", OBJ_HLINE, 0, 0, Ask);                                 // ②水平線
ObjectCreate("obj3", OBJ_ARROW, 0, Time[5], Bid);                           // ③矢印
ObjectSetInteger(0,"obj1", OBJPROP_COLOR, clrYellow);                       // ①のカラーを黄色に設定
ObjectSetInteger(0,"obj2", OBJPROP_STYLE, STYLE_DASHDOT);                   // ②のスタイルを破線と点線に設定
ObjectSetInteger(0,"obj3", OBJPROP_WIDTH, 5);                               // ③矢印の線の幅を5に設定
ObjectSetInteger(0,"obj3", OBJPROP_COLOR, clrCyan);                         // ③矢印の色を水色に設定
Print("①の色      :", (color)ObjectGetInteger(0,"obj1", OBJPROP_COLOR));  // ①の色を取得
Print("②のスタイル:", ObjectGetInteger(0,"obj2", OBJPROP_STYLE));         // ②のスタイルを取得
Print("③矢印の線幅:", ObjectGetInteger(0,"obj3", OBJPROP_WIDTH));         // ③矢印の線幅を取得
Print("③矢印の色  :", (color)ObjectGetInteger(0,"obj3", OBJPROP_COLOR));  // ③矢印の色を取得
}
void OnDeinit(const int reason) {
   ObjectsDeleteAll();
}コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果


