错误、漏洞、问题 - 页 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 "是(字符串)Lots?
 
Slava:
"1.e-002 "是(字符串)Lots?

是的。

 
Slava:
"1.e-002 "是(字符串)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,就会正确显示

Vitaliy,但DoubleToString 有第二个参数。而且在你的版本中是强制性的,否则将是默认的。幸运的是,我不记得有多少,这对我来说不感兴趣。

 
Alexey Viktorov:

Vitaly,但DoubleToString有第二个参数。而在你的变体中,它是强制性的,否则将是默认的。幸运的是,我不记得有多少,这对我来说不感兴趣。

默认情况下,它不应该把0.01输出为1。

我们将纠正

 
Slava:

默认情况下,它不应该将0.01输出为1.e-002

让我们纠正一下

我只是很高兴这个错误将被修复。但我的信息是,DoubleToString 在所提交的代码中需要第二个参数。
 
Igor Zakharov:

在相同的情况下,编译器的行为是不同的。

从kodobase下载了2个文件:https://www.mql5.com/en/code/15440

是在iTime()出现之前制作的,很明显。他们中的一个人在编译,另一个人在发誓。

功能是相同的。

呼叫也是如此。

骂人的原因很明显,可以理解,而且很容易通过自动更换来解决,但在类似情况下的不同行为却令人震惊。

PS。

编译后的指标工作正常。

我有两个文件造成完全相同的错误列表(共8个)。

 
Stanislav Korotky:

我有两个文件造成完全相同的错误列表(共8个)。

重新下载,尝试编译。 两个 有错误,但数量不同:8和9。


从自动替换的报告来看,它一定是不同的。

所以昨天出现了某种ME的故障。我认为第一种情况是有利于用户的失败(没有经过编辑就编译成功了!)。

 
Igor Zakharov:

重新下载,尝试编译。 两个 有错误,但数字是不同的:8和9。

从自动变更报告来看,它一定是不同的。

是的,确实如此,该范围还有1个。