オブジェクトプロパティ値を取得 ObjectGetInteger 関数

関数

オブジェクト関数

ObjectGetInteger 関数

 この関数は、引数にチャートIDとオブジェクト名を指定して、そのオブジェクトのプロパティ値(int・bool・color・datetime・char型)を取得します。
 取得するオブジェクトプロパティは整数型である必要があります。

 ObjectGet関数と動作は似ていますが、引数にチャートIDの使用有無で違いがあります。

データ型と構成・戻り値

 データ型は 2種類あります。

long ObjectGetInteger(①,②,③,④);
bool ObjectGetInteger(①,②,③,④,⑤);

 戻り値は、指定したオブジェクトのプロパティ値を返します。
 bool型の戻り値は、⑤に値が設定されプロパティ値が成立する場合 ture、それ以外は falseを返します。

 発生するエラーについては、GetLastError関数で取得することが出来ます。

引数 [5]

 ObjectGetInteger関数は 5個の引数で構成されます。


引数名データ型単位初期値説明
chart_idlongチャートIDを指定します。現在のチャートIDは「0」を指定するか、ChartID関数を使うことで取得できます。
object_namestringチャート上に描画されているオブジェクト名を指定します。
prop_idintオブジェクトのプロパティID。
ENUM_OBJECT_PROPERTY_INTEGER 列挙値から選択。
prop_modifierint0指定したプロパティの修飾子。
これは、フィボナッチツールとオブジェクトタイプの OBJ_PITCHFORK で必要になります。
long_varlong&取得したプロパティ値を設定します。
※初期値があるものは省略可。但し、省略した引数以降は省略しなければなりません。bool型でObjectGetInteger関数を使用する時は省略できません。

使用例

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();
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果 

タイトルとURLをコピーしました