Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Продавай продукты через Маркет и отслеживай статистику продаж
tobiraf
5
tobiraf 2016.03.20 18:23 
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit(){

//-------------button--------------- 
  ObjectCreate(0,"Button",OBJ_BUTTON,0,0,0);
  ObjectSet("Button", OBJPROP_CORNER, 3);
  ObjectSet("Button", OBJPROP_XDISTANCE, 160);
  ObjectSet("Button", OBJPROP_YDISTANCE, 30);
  ObjectSetInteger(0,"Button",OBJPROP_XSIZE,160); 
  ObjectSetInteger(0,"Button",OBJPROP_YSIZE,30);  
  //--- set the text 
   ObjectSetString(0,"Button",OBJPROP_TEXT,"Delete something"); 
//--- set text font 
   ObjectSetString(0,"Button",OBJPROP_FONT,"Times New Roman"); 
//--- set font size 
   ObjectSetInteger(0,"Button",OBJPROP_FONTSIZE,12); 
//--- set text color 
   ObjectSetInteger(0,"Button",OBJPROP_COLOR,clrRed); 
//--- set background color 
   ObjectSetInteger(0,"Button",OBJPROP_BGCOLOR,clrGreenYellow); 

//-------------END button---------------  


EventSetTimer(1);
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
      
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick(){

  string ObjectAccountequity = "\n\n\nAccountequity="+DoubleToStr(AccountEquity(),2);
  ObjectCreate(ObjectAccountequity, OBJ_LABEL, 0, 0, 0, 0);
  ObjectSet(ObjectAccountequity, OBJPROP_XDISTANCE, 10);
  ObjectSet(ObjectAccountequity, OBJPROP_YDISTANCE, 150);
  ObjectSetText(ObjectAccountequity, ObjectAccountequity, 12, "Arial", clrRed);

  
   
   
  
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer(){


  string ObjectSeconds = "\n\n\nSeconds="+IntegerToString(Seconds());
  ObjectCreate(ObjectSeconds, OBJ_LABEL, 0, 0, 0, 0);
  ObjectSet(ObjectSeconds, OBJPROP_XDISTANCE, 10);
  ObjectSet(ObjectSeconds, OBJPROP_YDISTANCE, 100);
  ObjectSetText(ObjectSeconds, ObjectSeconds, 12, "Arial", CornflowerBlue);

  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam){

   
}
//+------------------------------------------------------------------+


привет,

в моей программе три разных объекта.

Кнопка и два текста.
Хочу чтобы один текст показывал секунды, т.е. каждую секунду рисовал текст заново
и чтобы состояние счёта (AccountEquity()) перерисовывалось при изминение тика.
К сожалению эти две вещи не работают у меня. AccountEquity() рисует на предидущий тектст наверх.
А секунды не показвет вообще. ChartRedraw(), ObjectsDeleteAll(), ObjectsDelete() пробывал применить, не получается.
В чём ошибка?

Alexey Viktorov
5174
Alexey Viktorov 2016.03.21 05:00  

А зачем-же создавать новый объект, с новым именем каждую секунду и каждый тик???

Менять надо не имя лейбла, а его текст.


/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий