Add horizontal and vertial lines to separate objects

 

Hello everyone,

I am not sure how to achieve this ,but should be possible.

void ControlPanels()
{  
 string AControlPanel="P",        BControlPanel="1",
        CControlPanel="P2",       DControlPanel="P3",
        EControlPanel="P4",       FControlPanel="P5", 
        GControlPanel="P6",       HControlPanel="P7",
        IControlPanel="P8",       JControlPanel="P9";

   if(ObjectFind(0,AControlPanel)<0) 
     { 
      int A_Distance_X=0    ,A_Distance_Y=0   ,A_Size_X=623 ,A_Size_Y=343;
      int B_Distance_X=623  ,B_Distance_Y=0   ,B_Size_X=623 ,B_Size_Y=343;
      int C_Distance_X=1242 ,C_Distance_Y=0   ,C_Size_X=623 ,C_Size_Y=343;
 
      int D_Distance_X=0    ,D_Distance_Y=333 ,D_Size_X=623 ,D_Size_Y=343 ;      
      int E_Distance_X=623  ,E_Distance_Y=333 ,E_Size_X=623 ,E_Size_Y=343 ;
      int F_Distance_X=1242 ,F_Distance_Y=333 ,F_Size_X=623 ,F_Size_Y=343 ; 
           
      int G_Distance_X=0    ,G_Distance_Y=656 ,G_Size_X=623 , G_Size_Y=343 ;
      int H_Distance_X=623  ,H_Distance_Y=656 ,H_Size_X=623 , H_Size_Y=343 ;      
      int I_Distance_X=1242 ,I_Distance_Y=656 ,I_Size_X=623 , I_Size_Y=343 ;
     
      ObjectCreate    (0,AControlPanel,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,AControlPanel,OBJPROP_XDISTANCE,A_Distance_X);  ObjectSetInteger(0,AControlPanel,OBJPROP_YDISTANCE,A_Distance_Y); 
      ObjectSetInteger(0,AControlPanel,OBJPROP_XSIZE,A_Size_X)        ;  ObjectSetInteger(0,AControlPanel,OBJPROP_YSIZE,A_Size_Y);
      ObjectSetInteger(0,AControlPanel,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,AControlPanel,OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,AControlPanel,OBJPROP_COLOR,clrWhite);          ObjectSetInteger(0,AControlPanel,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,AControlPanel,OBJPROP_FONTSIZE,10);             

      ObjectCreate    (0,BControlPanel,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,BControlPanel,OBJPROP_XDISTANCE,B_Distance_X);  ObjectSetInteger(0,BControlPanel,OBJPROP_YDISTANCE,B_Distance_Y); 
      ObjectSetInteger(0,BControlPanel,OBJPROP_XSIZE,B_Size_X)        ;  ObjectSetInteger(0,BControlPanel,OBJPROP_YSIZE,B_Size_Y);
      ObjectSetInteger(0,BControlPanel,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,BControlPanel,OBJPROP_BGCOLOR,clrBlue);
      ObjectSetInteger(0,BControlPanel,OBJPROP_COLOR,clrWhite);          ObjectSetInteger(0,BControlPanel,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,BControlPanel,OBJPROP_FONTSIZE,10);             

      ObjectCreate    (0,CControlPanel,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,CControlPanel,OBJPROP_XDISTANCE,C_Distance_X);  ObjectSetInteger(0,CControlPanel,OBJPROP_YDISTANCE,C_Distance_Y); 
      ObjectSetInteger(0,CControlPanel,OBJPROP_XSIZE,C_Size_X)        ;  ObjectSetInteger(0,CControlPanel,OBJPROP_YSIZE,C_Size_Y);
      ObjectSetInteger(0,CControlPanel,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,CControlPanel,OBJPROP_BGCOLOR,clrRed);
      ObjectSetInteger(0,CControlPanel,OBJPROP_COLOR,clrWhite);          ObjectSetInteger(0,CControlPanel,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,CControlPanel,OBJPROP_FONTSIZE,10);             

      ObjectCreate    (0,DControlPanel,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,DControlPanel,OBJPROP_XDISTANCE,D_Distance_X);  ObjectSetInteger(0,DControlPanel,OBJPROP_YDISTANCE,D_Distance_Y); 
      ObjectSetInteger(0,DControlPanel,OBJPROP_XSIZE,D_Size_X)        ;  ObjectSetInteger(0,DControlPanel,OBJPROP_YSIZE,D_Size_Y);
      ObjectSetInteger(0,DControlPanel,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,DControlPanel,OBJPROP_BGCOLOR,clrGray);
      ObjectSetInteger(0,DControlPanel,OBJPROP_COLOR,clrWhite);          ObjectSetInteger(0,DControlPanel,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,DControlPanel,OBJPROP_FONTSIZE,10);             

      ObjectCreate    (0,EControlPanel,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,EControlPanel,OBJPROP_XDISTANCE,E_Distance_X);  ObjectSetInteger(0,EControlPanel,OBJPROP_YDISTANCE,E_Distance_Y); 
      ObjectSetInteger(0,EControlPanel,OBJPROP_XSIZE,E_Size_X)        ;  ObjectSetInteger(0,EControlPanel,OBJPROP_YSIZE,E_Size_Y);
      ObjectSetInteger(0,EControlPanel,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,EControlPanel,OBJPROP_BGCOLOR,clrOrange);
      ObjectSetInteger(0,EControlPanel,OBJPROP_COLOR,clrWhite);          ObjectSetInteger(0,EControlPanel,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,EControlPanel,OBJPROP_FONTSIZE,10);             

      ObjectCreate    (0,FControlPanel,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,FControlPanel,OBJPROP_XDISTANCE,F_Distance_X) ; ObjectSetInteger(0,FControlPanel,OBJPROP_YDISTANCE,F_Distance_Y); 
      ObjectSetInteger(0,FControlPanel,OBJPROP_XSIZE,F_Size_X)         ; ObjectSetInteger(0,FControlPanel,OBJPROP_YSIZE,F_Size_Y);
      ObjectSetInteger(0,FControlPanel,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,FControlPanel,OBJPROP_BGCOLOR,clrYellow);
      ObjectSetInteger(0,FControlPanel,OBJPROP_COLOR,clrWhite);          ObjectSetInteger(0,FControlPanel,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,FControlPanel,OBJPROP_FONTSIZE,10);  
       
      ObjectCreate    (0,GControlPanel,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,GControlPanel,OBJPROP_XDISTANCE,G_Distance_X) ; ObjectSetInteger(0,GControlPanel,OBJPROP_YDISTANCE,G_Distance_Y); 
      ObjectSetInteger(0,GControlPanel,OBJPROP_XSIZE,G_Size_X)         ; ObjectSetInteger(0,GControlPanel,OBJPROP_YSIZE,G_Size_Y);
      ObjectSetInteger(0,GControlPanel,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,GControlPanel,OBJPROP_BGCOLOR,clrGreen);
      ObjectSetInteger(0,GControlPanel,OBJPROP_COLOR,clrWhite);          ObjectSetInteger(0,GControlPanel,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,GControlPanel,OBJPROP_FONTSIZE,10);             
      
      ObjectCreate    (0,HControlPanel,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,HControlPanel,OBJPROP_XDISTANCE,H_Distance_X) ; ObjectSetInteger(0,HControlPanel,OBJPROP_YDISTANCE,H_Distance_Y); 
      ObjectSetInteger(0,HControlPanel,OBJPROP_XSIZE,H_Size_X)         ; ObjectSetInteger(0,HControlPanel,OBJPROP_YSIZE,H_Size_Y); 
      ObjectSetInteger(0,HControlPanel,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,HControlPanel,OBJPROP_BGCOLOR,clrPurple);
      ObjectSetInteger(0,HControlPanel,OBJPROP_COLOR,clrWhite);          ObjectSetInteger(0,HControlPanel,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,HControlPanel,OBJPROP_FONTSIZE,10);              
      
      ObjectCreate    (0,IControlPanel,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,IControlPanel,OBJPROP_XDISTANCE,I_Distance_X) ; ObjectSetInteger(0,IControlPanel,OBJPROP_YDISTANCE,I_Distance_Y); 
      ObjectSetInteger(0,IControlPanel,OBJPROP_XSIZE,I_Size_X)         ; ObjectSetInteger(0,IControlPanel,OBJPROP_YSIZE,I_Size_Y);
      ObjectSetInteger(0,IControlPanel,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,IControlPanel,OBJPROP_BGCOLOR,clrPink);
      ObjectSetInteger(0,IControlPanel,OBJPROP_COLOR,clrWhite);          ObjectSetInteger(0,IControlPanel,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,IControlPanel,OBJPROP_FONTSIZE,10);             

      ChartRedraw(0);  
     } 
  }
  
void ControlPanel()
{  
 string FirstControl="PA0",
        SecondControl="PA1";
   if(ObjectFind(0,FirstControl)<0) 
     { 
      int PA0_Distance_X=0    ,PA0_Distance_Y=0   ,PA0_Size_X=935 ,PA0_Size_Y=980;
      int PA1_Distance_X=935  ,PA1_Distance_Y=0   ,PA1_Size_X=935 ,PA1_Size_Y=980;
           
      ObjectCreate    (0,FirstControl,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,FirstControl,OBJPROP_XDISTANCE,PA0_Distance_X); ObjectSetInteger(0,FirstControl,OBJPROP_YDISTANCE,PA0_Distance_Y); 
      ObjectSetInteger(0,FirstControl,OBJPROP_XSIZE,PA0_Size_X)        ; ObjectSetInteger(0,FirstControl,OBJPROP_YSIZE,PA0_Size_Y);
      ObjectSetInteger(0,FirstControl,OBJPROP_BORDER_TYPE,BORDER_FLAT) ; ObjectSetInteger(0,FirstControl,OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,FirstControl,OBJPROP_COLOR,clrWhite)          ; ObjectSetInteger(0,FirstControl,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,FirstControl,OBJPROP_FONTSIZE,10)             ; ObjectSetString (0,FirstControl,OBJPROP_TEXT,"Display"); 
      ObjectSetString (0,FirstControl,OBJPROP_FONT,"Arial"); 
     
      ObjectCreate    (0,SecondControl,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,SecondControl,OBJPROP_XDISTANCE,PA1_Distance_X); ObjectSetInteger(0,SecondControl,OBJPROP_YDISTANCE,PA1_Distance_Y); 
      ObjectSetInteger(0,SecondControl,OBJPROP_XSIZE,PA1_Size_X)        ; ObjectSetInteger(0,SecondControl,OBJPROP_YSIZE,PA1_Size_Y);
      ObjectSetInteger(0,SecondControl,OBJPROP_BORDER_TYPE,BORDER_FLAT) ; ObjectSetInteger(0,SecondControl,OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,SecondControl,OBJPROP_COLOR,clrWhite)          ; ObjectSetInteger(0,SecondControl,OBJPROP_SELECTABLE,false); 
      ObjectSetInteger(0,SecondControl,OBJPROP_FONTSIZE,10)             ;ObjectSetString (0,SecondControl,OBJPROP_TEXT,"Display"); 
      ObjectSetString (0,SecondControl,OBJPROP_FONT,"Arial");       
      
            ChartRedraw(0); 
            }
            }
 
GrumpyDuckMan:

Hello everyone,

I am not sure how to achieve this ,but should be possible.


Are we supposed to just guess what you want to do here?

 
nicholishen:

Are we supposed to just guess what you want to do here?

Hello again,

I am trying to do something like this. The code works, but the line only will only draw about half way across the first object.

The line is supposed to stop at the boundary of SecondControl.

void ControlPanel()
{  
 string FirstControl="PA0",SecondControl="PA1",HLINE="line",VLINE="vline";
    string LITELINE="_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________";
       
   if(ObjectFind(0,FirstControl)<0) 
     { 
      int PA0_Distance_X=0    ,PA0_Distance_Y=0   ,PA0_Size_X=935    ,PA0_Size_Y=980;
      int PA1_Distance_X=935  ,PA1_Distance_Y=0   ,PA1_Size_X=935    ,PA1_Size_Y=980;
      int Hline_X=0           ,Hline_Y=100        ,Hline_Size_X=1870 ,Hline_Size_Y=1;
      
      ObjectCreate    (0,FirstControl,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,FirstControl,OBJPROP_XDISTANCE,PA0_Distance_X);ObjectSetInteger(0,FirstControl,OBJPROP_YDISTANCE,PA0_Distance_Y); 
      ObjectSetInteger(0,FirstControl,OBJPROP_XSIZE,PA0_Size_X)        ;ObjectSetInteger(0,FirstControl,OBJPROP_YSIZE,PA0_Size_Y);
      ObjectSetInteger(0,FirstControl,OBJPROP_BORDER_TYPE,BORDER_FLAT) ;ObjectSetInteger(0,FirstControl,OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,FirstControl,OBJPROP_COLOR,clrWhite)          ;ObjectSetInteger(0,FirstControl,OBJPROP_SELECTABLE,false); 

      ObjectCreate    (0,SecondControl,OBJ_RECTANGLE_LABEL,0,0,0);            
      ObjectSetInteger(0,SecondControl,OBJPROP_XDISTANCE,PA1_Distance_X);ObjectSetInteger(0,SecondControl,OBJPROP_YDISTANCE,PA1_Distance_Y); 
      ObjectSetInteger(0,SecondControl,OBJPROP_XSIZE,PA1_Size_X)        ;ObjectSetInteger(0,SecondControl,OBJPROP_YSIZE,PA1_Size_Y);
      ObjectSetInteger(0,SecondControl,OBJPROP_BORDER_TYPE,BORDER_FLAT) ;ObjectSetInteger(0,SecondControl,OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,SecondControl,OBJPROP_COLOR,clrWhite)          ;ObjectSetInteger(0,SecondControl,OBJPROP_SELECTABLE,false); 
 
      ObjectCreate    (0,HLINE,OBJ_LABEL,0,0,0);
      ObjectSetInteger(0,HLINE,OBJPROP_XDISTANCE,Hline_X)               ;ObjectSetInteger(0,HLINE,OBJPROP_YDISTANCE,Hline_Y ); 
      ObjectSetInteger(0,HLINE,OBJPROP_XSIZE,Hline_Size_X)              ;ObjectSetInteger(0,HLINE,OBJPROP_YSIZE,Hline_Size_Y );
      ObjectSetInteger(0,HLINE,OBJPROP_BORDER_TYPE,BORDER_FLAT)         ;ObjectSetInteger(0,HLINE,OBJPROP_BGCOLOR,clrWhite); 
      ObjectSetInteger(0,HLINE,OBJPROP_SELECTABLE,false)                ;ObjectSetText   (HLINE,LITELINE,10,"",clrWhite);
  }       
      ChartRedraw(0); 
            }
 

Hello again

Updated code working.

void ControlPanel()
  {
   string FirstControl="PA0",SecondControl="PA1",HLINE="line",VLINE="vline";
   string LITELINE="______________________________________________________________";
   string LITELINE1="|";

   if(ObjectFind(0,FirstControl)<0)
     {
      int PA0_Distance_X=0    ,PA0_Distance_Y=0   ,PA0_Size_X=935    ,PA0_Size_Y=980;
      int PA1_Distance_X=935  ,PA1_Distance_Y=0   ,PA1_Size_X=935    ,PA1_Size_Y=980;

      int Hline_X=3           ,Hline_Y=10         ,Hline_Size_X=0    ,Hline_Size_Y=1;
      int Vline_X=300         ,Vline_Y=0          ,Vline_Size_X=0    ,Vline_Size_Y=1;

      ObjectCreate(0,FirstControl,OBJ_RECTANGLE_LABEL,0,0,0);
      ObjectSetInteger(0,FirstControl,OBJPROP_XDISTANCE,PA0_Distance_X);ObjectSetInteger(0,FirstControl,OBJPROP_YDISTANCE,PA0_Distance_Y);
      ObjectSetInteger(0,FirstControl,OBJPROP_XSIZE,PA0_Size_X);ObjectSetInteger(0,FirstControl,OBJPROP_YSIZE,PA0_Size_Y);
      ObjectSetInteger(0,FirstControl,OBJPROP_BORDER_TYPE,BORDER_FLAT);ObjectSetInteger(0,FirstControl,OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,FirstControl,OBJPROP_COLOR,clrWhite);ObjectSetInteger(0,FirstControl,OBJPROP_SELECTABLE,false);

      ObjectCreate(0,SecondControl,OBJ_RECTANGLE_LABEL,0,0,0);
      ObjectSetInteger(0,SecondControl,OBJPROP_XDISTANCE,PA1_Distance_X);ObjectSetInteger(0,SecondControl,OBJPROP_YDISTANCE,PA1_Distance_Y);
      ObjectSetInteger(0,SecondControl,OBJPROP_XSIZE,PA1_Size_X);ObjectSetInteger(0,SecondControl,OBJPROP_YSIZE,PA1_Size_Y);
      ObjectSetInteger(0,SecondControl,OBJPROP_BORDER_TYPE,BORDER_FLAT);ObjectSetInteger(0,SecondControl,OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,SecondControl,OBJPROP_COLOR,clrWhite);ObjectSetInteger(0,SecondControl,OBJPROP_SELECTABLE,false);

      ObjectCreate(0,HLINE,OBJ_LABEL,0,0,0);ObjectSetInteger(0,HLINE,OBJPROP_XDISTANCE,Hline_X);
      ObjectSetInteger(0,HLINE,OBJPROP_YDISTANCE,Hline_Y);ObjectSetText(HLINE,LITELINE,20,"",clrWhite);

      ObjectCreate(0,VLINE,OBJ_LABEL,0,0,0);ObjectSetInteger(0,VLINE,OBJPROP_XDISTANCE,Vline_X);
      ObjectSetInteger(0,VLINE,OBJPROP_YDISTANCE,Vline_Y);ObjectSetText(VLINE,LITELINE1,20,"",clrWhite);
     }
   ChartRedraw(0);
  }
//+------------------------------------------------------------------+
 

Hello again

I realize now, sometimes you think it works, after testing your solutions. Debug(variable,emun,etc) create more drama than at times or, expected. 

 

Hello again,

I am trying now to create multiple objects from the one function. I didn't really like my first attempt, and to be honest I thought it was crap.

I would like to know if this approach is possible?

void build()
  {
     
   string Build="Build";int next = 0; // Global variable
   
  // OBJPROP_XDISTANCE,OBJPROP_YDISTANCE,OBJPROP_XSIZE,OBJPROP_YSIZE
   int I[]={10,20,30,40,01,50,60,70,80,02,90,100,110,120,130,03}; 
  // End for Create object
   int Finish[]={01,02,03,04,05,06,07,08,09};  
   
   for(int SHIFT=0; SHIFT<100; SHIFT++)
     {
      if(I[SHIFT]==Finish[0])
         break;
      Alert(I[SHIFT]);

      ObjectCreate(0,Build,OBJ_RECTANGLE_LABEL,0,0,0);
      ObjectSetInteger(0,Build,OBJPROP_XDISTANCE,DistanceX[0]);
      ObjectSetInteger(0,Build,OBJPROP_YDISTANCE,DistanceY[0]);
      ObjectSetInteger(0,Build,OBJPROP_XSIZE,SizeX[10]);
      ObjectSetInteger(0,Build,OBJPROP_YSIZE,SizeY[10]);
      ObjectSetInteger(0,Build,OBJPROP_BORDER_TYPE,BORDER_FLAT);
      ObjectSetInteger(0,Build,OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,Build,OBJPROP_COLOR,clrWhite);  
      ObjectSetInteger(0,Build,OBJPROP_SELECTABLE,false);
      next++;
     }
  }
 

Hello again,


I got it to a stage now that I can work with.

void ObjectBuild()
  {
   string Build[]=
     {
      "Build0","Build1","Build2",
      "Build3","Build4","Build4",
      "Build6","Build7","Build8"
     };
   int NewPanel=0;
   int next=0;
   int Finish[]={01,02,03,04,05,06,07,08,09};
// OBJPROP_XDISTANCE,OBJPROP_YDISTANCE,OBJPROP_XSIZE,OBJPROP_YSIZE,Finish   
   int I[]=
     {
      10,20,30,40,01,
      50,60,70,80,02,
      90,100,110,120,03,
      140,150,160,170,04,
      180,190,200,210,05
     };

   for(int SHIFT=0; SHIFT<24; SHIFT++)
     {
      if(I[SHIFT] || Finish[next])

      next++;     if(next>=24)    break;
      NewPanel++; if(NewPanel>=9) break;
      ObjectCreate(0,Build[NewPanel],OBJ_RECTANGLE_LABEL,0,0,0);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_XDISTANCE,I[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_YDISTANCE,I[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_XSIZE,I[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_YSIZE,I[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_BORDER_TYPE,BORDER_FLAT);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_COLOR,clrWhite);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_SELECTABLE,false);

     }
  }
 
GrumpyDuckMan:

Hello again,


I got it to a stage now that I can work with.


You're probably going get a whole bunch of errors with that... You can only create one object per string_name and you're calling the create function 24 times with only 9 unique names. It's not real clear what you're trying to accomplish with this, but I assume it's just for learning so here's an similar example for creating a dynamic (random) number of rect-label objects on the chart. 

#property indicator_chart_window
#include <ChartObjects\ChartObjectsTxtControls.mqh>
#include <Arrays\List.mqh>

class MyLabelLeftUpper : public CChartObjectRectLabel
{
protected:
   static int     m_instances;
   int            m_instance;
public:
   MyLabelLeftUpper(){ m_instance= ++m_instances; }
   virtual bool Create()
   {
      string n = "__rect__"+string(m_instance);
      if(!CChartObjectRectLabel::Create(0,n,0,0,0,125,125))
         return false;
      int xy = m_instance * 15;
      X_Distance(xy);
      Y_Distance(xy);
      BorderType(BORDER_FLAT);
      BackColor(clrDarkOrange);
      FontSize(50);
      Style(STYLE_SOLID);  
      return true;
   }
};
int MyLabelLeftUpper::m_instances=0;

class MyLabelRightUpper : public MyLabelLeftUpper
{
public:
   virtual bool Create() override
   {
      if(!MyLabelLeftUpper::Create())
         return false;
      Corner(CORNER_RIGHT_UPPER);
      return true;
   }
};

CList list;
//+------------------------------------------------------------------+
int OnInit()
{
   srand(_RandomSeed);
   for(int i=rand()%30+1;i>=0;i--)
   {
      MyLabelLeftUpper *rect = new MyLabelLeftUpper;
      rect.Create();
      list.Add(rect);
      rect = new MyLabelRightUpper;
      rect.Create();
      list.Add(rect);
   }
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
int start(){ return(0);}
 
nicholishen:

You're probably going get a whole bunch of errors with that... You can only create one object per string_name and you're calling the create function 24 times with only 9 unique names. It's not real clear what you're trying to accomplish with this, but I assume it's just for learning so here's an similar example for creating a dynamic (random) number of rect-label objects on the chart. 

Hello again,

Your totally right, the exercise is for learning. I changed the code around, due to the fact the objects being created are all squares. My new attempt below.

Code isn't completed, I am just happy that I have managed to progress a little more.

BTW: I got no errors, just code didn't do the tasks I wanted.

void ObjectBuild()
  {
   string Build[]=
     {
      "Build0","Build1","Build2",
      "Build3","Build4","Build4",
      "Build6","Build7","Build8"
     };
   int NewPanel=0;
    int D_X[]={0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    int D_Y[]={0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    int X[]  ={10,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    int Y[]  ={10,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
                 
   for(int SHIFT=0; SHIFT<300; SHIFT++)
     {
      if(D_Y[SHIFT]==D_Y[SHIFT])     if(D_X[SHIFT]==D_X[SHIFT])      
      if(X[SHIFT]==X[SHIFT])         if(Y[SHIFT]==Y[SHIFT]) 
           
      NewPanel++; if(NewPanel>=9) break;
         
      ObjectCreate(0,Build[NewPanel],OBJ_RECTANGLE_LABEL,0,0,0);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_XDISTANCE,D_X[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_YDISTANCE,D_Y[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_XSIZE,X[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_YSIZE,Y[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_BORDER_TYPE,BORDER_FLAT);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_COLOR,clrWhite);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_SELECTABLE,false);

     }
  }
 

Hello again,

These lines of code have nothing to with object create. It has taken me a couple days to figure that out.

      if(D_Y[SHIFT]==D_Y[SHIFT])     if(D_X[SHIFT]==D_X[SHIFT])      
      if(X[SHIFT]==X[SHIFT])         if(Y[SHIFT]==Y[SHIFT]) 
 

Hello again,

This code has preformed a bit better than the others, still not functioning correctly.

void ObjectBuild()
  {
   string Build[]=
     {
      "Build0","Build1","Build2",
      "Build3","Build4","Build4",
      "Build6","Build7","Build8"
     };
   int NewPanel=0;
                                           
    int D_X[]={0,623,1242,0,623,1242,0,623,1242};
    int D_Y[]={0,0,0,343,343,343,623,623,623};
    int X[]  ={623,623,623,623,623,623,623,623,623};
    int Y[]  ={343,343,343,343,343,343,343,343,343};
                 
   for(int SHIFT=0; SHIFT<300; SHIFT++)
     {
      NewPanel++; if(NewPanel>=9) break;
         
      ObjectCreate(0,Build[NewPanel],OBJ_RECTANGLE_LABEL,0,0,0);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_XDISTANCE,D_X[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_YDISTANCE,D_Y[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_XSIZE,X[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_YSIZE,Y[SHIFT]);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_BORDER_TYPE,BORDER_FLAT);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_BGCOLOR,clrBlack);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_COLOR,clrWhite);
      ObjectSetInteger(0,Build[NewPanel],OBJPROP_SELECTABLE,false);

     }
  }