Fehler, Irrtümer, Fragen - Seite 2427

 
Slava:
Anzeige des Ausgabecodes


// Создадим поле ввода лота
   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" ist (String)Lots?
 
Slava:
"1.e-002" ist (String)Lots?

Ja.

 
Slava:
"1.e-002" ist (String)Lots?

Das Los in den Eingabeparametern wurde auf 0,05 geändert.

Der Code wurde geändert in:

   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. Wenn ich jedoch 0,01 auf einmal eingebe, wird es korrekt angezeigt

 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:

Das Los in den Eingabeparametern wurde auf 0,05 geändert.

Der Code wurde geändert in:



P.S. Wenn Sie jedoch 0,01 auf einmal eingeben, wird es korrekt angezeigt

Vitaliy, aber DoubleToString hat den zweiten Parameter. Und es ist in Ihrer Version obligatorisch, sonst wird es standardmäßig sein. Zum Glück weiß ich nicht mehr, wie viel es war, es ist für mich nicht interessant.

 
Alexey Viktorov:

Vitaly, aber DoubleToString hat einen zweiten Parameter. Und in Ihrer Variante ist es obligatorisch, sonst wird es standardmäßig sein. Zum Glück weiß ich nicht mehr, wie viel, es interessiert mich nicht.

In der Standardeinstellung sollte 0,01 nicht als 1 ausgegeben werden.

Wir werden korrigieren

 
Slava:

Standardmäßig sollte es nicht 0,01 als 1,e-002 ausgeben.

Korrigieren wir

Ich bin nur froh, dass dieser Fehler behoben wird. Aber meine Nachricht war nur, dass DoubleToString einen zweiten Parameter in dem vorgestellten Code benötigt.
 
Igor Zakharov:

verhält sich der Compiler in denselben Fällen unterschiedlich.

Ich habe 2 Dateien von kodobase heruntergeladen:https://www.mql5.com/en/code/15440

wurden gemacht, offensichtlich bevor iTime() erschien. Einer von ihnen kompiliert, der andere flucht:

Die Funktionen sind identisch:

ruft auch an.

Der Grund für das Schimpfen ist offensichtlich, verständlich und durch die automatische Ersetzung leicht zu beheben, aber das unterschiedliche Verhalten in ähnlichen Situationen ist alarmierend.

PS:

Der kompilierte Indikator arbeitet korrekt.

Ich habe beide Dateien, die genau die gleiche Fehlerliste (insgesamt 8) verursachen.

 
Stanislav Korotky:

Ich habe beide Dateien, die genau die gleichen Fehlerlisten (insgesamt 8) verursachen.

Neu heruntergeladen, versucht zu kompilieren, beide mit Fehlern, aber die Anzahl ist unterschiedlich: 8 und 9.


Nach dem Bericht über die automatische Ersetzung zu urteilen, muss es anders sein.

Gestern gab es also eine Art ME-Panne. Ich betrachte die erste als einen Fehlschlag zugunsten des Benutzers (ohne Änderungen kompiliert und funktioniert!).

 
Igor Zakharov:

Neu heruntergeladen, versucht zu kompilieren, beide mit Fehlern, aber die Zahlen sind unterschiedlich: 8 und 9.

Nach dem Bericht über die automatische Änderung zu urteilen, muss es anders sein.

Ja, der Bereich hat 1 mehr.