固定したオブジェクトを一括で出したり消したりする方法とは?

この前に書いた記事の追加だお!

こちらの記事の続きになります。

http://celebpanda.com/wp/columns/diary/93/

string prefix = "BtnTest";
for(int i = 0; i < 10; i++)
{
    string nameBtn = prefix + (string)i;  
    ObjectCreate(0,nameBtn,OBJ_BUTTON,0,0,0);          //ボタンを生成
    ObjectSetInteger(0,nameBtn,OBJPROP_XDISTANCE,0);   //横位置
    ObjectSetInteger(0,nameBtn,OBJPROP_YDISTANCE,30*i);//縦位置
    ObjectSetInteger(0,nameBtn,OBJPROP_XSIZE,50);      //横幅
    ObjectSetInteger(0,nameBtn,OBJPROP_YSIZE,25);      //縦幅
} 

このコードで作成したオブジェクト名は、
BtnTest0・BtnTest1・BtnTest2・・・・BtnTest9になります。
これらの名前で検索して、設定をしてあげます。
オブジェクトに設定する場合は、主に下記の関数を使用します。

ObjectSetInteger() //int型の設定をするとき
ObjectSetString()  //string型の設定をするとき
ObjectSetDouble()  //Double型の設定をするとき
string prefix = "BtnTest";

for(int i = 0; i < 10; i++)
{
    string nameBtn = prefix + (string)i;  
    ObjectSetInteger(0,nameBtn,OBJPROP_TIMEFRAMES,EMPTY);//全ての時間軸で非表示にする
}  

for(int i = 0; i < 10; i++)
{
    string nameBtn = prefix + (string)i;  
    ObjectSetInteger(0,nameBtn,OBJPROP_TIMEFRAMES,OBJ_ALL_PERIODS);//全ての時間軸で表示する
}  

このように書くと、指定した名前のオブジェクトを、
表示・非表示するだけなので、位置などは変更されません。
今回はボタンでやっていますが、これがトレンドラインや、水平線、垂直線などの場合でも同じです。

色を背景色と同じにすることで、
同じことができるんじゃないかと思いますが、少し異なります。
下記画像をご覧ください。

赤い矢印が指しているところが、消えていませんか?
分かりやすく太さを極太にしていますが、色は黒になっています。

このようにロウソク足を黒く塗りつぶしてしまいます。

このような事態を避けるために、表示・非表示を使っていきましょう!

では、次回もお楽しみにだお!

Twitterでフォローしよう

おすすめの記事