Ошибки, баги, вопросы - страница 2427

 
Slava:
Покажите код вывода


// Создадим поле ввода лота
   EditCreate(0,prefix+"LotBuy",xd,yd+15,47,15,0,(string)Lots,"Lot Buy","Verdana",8,clrBlack,C'241,239,226',clrGray,false,ALIGN_CENTER);

   EditCreate(0,prefix+"LotSell",xd,yd+15,47,15,0,(string)Lots,"Lot Sell","Verdana",8,clrBlack,C'241,239,226',clrGray,false,ALIGN_CENTER);

void EditCreate(long chart_ID,string nm="Edit",int xd=0,int yd=0,int width=50,int height=18,int cr=0,
                string text="Edit",string tooltip="Edit",string font="Arial",int font_size=9,
                color clr=clrBlack,color back_clr=C'236,233,216',color border_clr=clrNONE,
                                                              bool read_only=false,int align=0) {
 if(ObjectFind(chart_ID,nm)<0) {
    ObjectCreate(chart_ID,nm,OBJ_EDIT,0,0,0);
    ObjectSetInteger(chart_ID,nm,OBJPROP_XDISTANCE,xd);
    ObjectSetInteger(chart_ID,nm,OBJPROP_YDISTANCE,yd);
    ObjectSetInteger(chart_ID,nm,OBJPROP_XSIZE,width);
    ObjectSetInteger(chart_ID,nm,OBJPROP_YSIZE,height);
    ObjectSetString(chart_ID,nm,OBJPROP_TEXT,text);
    ObjectSetString(chart_ID,nm,OBJPROP_TOOLTIP,tooltip);
    ObjectSetString(chart_ID,nm,OBJPROP_FONT,font);
    ObjectSetInteger(chart_ID,nm,OBJPROP_FONTSIZE,font_size);
    ObjectSetInteger(chart_ID,nm,OBJPROP_ALIGN,align);
    ObjectSetInteger(chart_ID,nm,OBJPROP_READONLY,read_only);
    ObjectSetInteger(chart_ID,nm,OBJPROP_CORNER,cr);
    ObjectSetInteger(chart_ID,nm,OBJPROP_COLOR,clr);
    ObjectSetInteger(chart_ID,nm,OBJPROP_BGCOLOR,back_clr);
    ObjectSetInteger(chart_ID,nm,OBJPROP_BORDER_COLOR,border_clr);
    ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,false);
    ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,false);
    ObjectSetInteger(chart_ID,nm,OBJPROP_HIDDEN,false);
  }
 }
 
Vitaly Muzichenko:


"1.e-002" - это (string)Lots?
 
Slava:
"1.e-002" - это (string)Lots?

Да.

 
Slava:
"1.e-002" - это (string)Lots?

Сменил лот во входных параметрах на 0.05

Изменил код на:

   EditCreate(0,prefix+"LotBuy",xd,yd+15,47,15,0,DoubleToString(Lots),"Lot Buy","Verdana",8,clrBlack,C'241,239,226',clrGray,false,ALIGN_CENTER);

   EditCreate(0,prefix+"LotSell",xd,yd+15,47,15,0,Lots,"Lot Sell","Verdana",8,clrBlack,C'241,239,226',clrGray,false,ALIGN_CENTER);



P.S. А вот если сразу ввести 0.01, то отображает правильно

 EditCreate(0,prefix+"LotBuy",xd,yd+15,47,15,0,(string)0.01,"Lot Buy","Verdana",8,clrBlack,C'241,239,226',clrGray,false,ALIGN_CENTER);
 
Vitaly Muzichenko:

Сменил лот во входных параметрах на 0.05

Изменил код на:



P.S. А вот если сразу ввести 0.01, то отображает правильно

Виталий, но ведь DoubleToString имеет второй параметр. И в твоём варианте обязательный, иначе будет по умолчанию. К счастью не помню сколько, оно мне не интересно.

 
Alexey Viktorov:

Виталий, но ведь DoubleToString имеет второй параметр. И в твоём варианте обязательный, иначе будет по умолчанию. К счастью не помню сколько, оно мне не интересно.

По умолчанию не должно выводить 0.01 как 1.e-002

Будем править

 
Slava:

По умолчанию не должно выводить 0.01 как 1.e-002

Будем править

Я только рад что эта ошибка будет исправлена. Но мой посыл был только о том, что в DoubleToString в представленном коде нужен второй параметр.
 
Igor Zakharov:

компилятор в одинаковых случаях ведёт себя по разному.

Скачал 2 файла из кодобазы: https://www.mql5.com/en/code/15440

были сделаны, очевидно до того как появились iTime(). Один из них компилируется, второй ругается:

Функции идентичны:

вызовы тоже

Причина, по которой ругается очевидна, понятна и легко исправляется автозаменой, но разное поведение в аналогичных ситуациях - настораживает.

PS:

откомпилированный индикатор работает корректно.

У меня оба файла вызывают абсолютно одинаковые списки ошибок (всего по 8).

 
Stanislav Korotky:

У меня оба файла вызывают абсолютно одинаковые списки ошибок (всего по 8).

Перезакачал, попробовал компилировать, оба с ошибками, но количество разное: 8 и 9


Судя по отчёту автозамены, должно быть разное.

Значит, вчера был какой-то сбой МЕ. Первый вижу сбой в пользу пользователя (откомпилировался без правок и работал!).

 
Igor Zakharov:

Перезакачал, попробовал компилировать, оба с ошибками, но количество разное: 8 и 9

Судя по отчёту автозамены, должно быть разное.

Да, действительно, в range на 1 больше.

Причина обращения: