エラー、バグ、質問 - ページ 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 "は(文字列)ロット?
 
Slava:
"1.e-002 "は(文字列)ロット?

はい。

 
Slava:
"1.e-002 "は(文字列)ロット?

入力パラメータのロットを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);



追伸:しかし、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に変更しました。

に変更しました。



追伸:しかし、0.01を一度に入力すると、正しく表示されます

Vitaliyさん、でもDoubleToStringは 第2パラメータがあります。そして、あなたのバージョンでは必須で、そうでない場合はデフォルトでそうなります。幸いなことに、いくらだったか覚えていないので、面白くもなんともない。

 
Alexey Viktorov:

Vitalyさん、でもDoubleToStringは第2パラメータがあります。そして、あなたのバリエーションでは、それは義務であり、そうでなければデフォルトでそうなります。幸いなことに金額は覚えていない、興味はない。

デフォルトでは、0.01を1として出力しないようにします。

修正いたします。

 
Slava:

デフォルトでは、0.01を1.e-002と出力しないようにします。

修正しよう

このエラーが修正されるのは嬉しい限りです。しかし、私のメッセージは、提示されたコードではDoubleToStringは 第2パラメータが必要であるということだけでした。
 
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つです。