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();
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)