오류, 버그, 질문 - 페이지 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 );



PS 그러나 즉시 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로 변경

코드를 다음과 같이 변경했습니다.



PS 그러나 즉시 0.01을 입력하면 올바르게 표시됩니다.

Vitaly이지만 DoubleToString 에는 두 번째 매개 변수가 있습니다. 그리고 귀하의 버전에서는 필수이며, 그렇지 않으면 기본값이 됩니다. 다행히 얼마인지 기억이 안나서 관심이 없습니다.

 
Alexey Viktorov :

Vitaly이지만 DoubleToString에는 두 번째 매개 변수가 있습니다. 그리고 귀하의 버전에서는 필수이며, 그렇지 않으면 기본값이 됩니다. 다행히 얼마인지 기억이 안나서 관심이 없습니다.

기본값은 0.01을 1.e-002로 출력해서는 안 됩니다.

우리는 지배할 것이다

 
Slava :

기본값은 0.01을 1.e-002로 출력해서는 안 됩니다.

우리는 지배할 것이다

이 버그가 수정되어 기쁩니다. 그러나 내 메시지는 제시된 코드의 DoubleToString 에 두 번째 매개 변수가 필요하다는 것입니다.
 
Igor Zakharov :

컴파일러는 동일한 경우에 다르게 동작합니다.

코드베이스에서 2개의 파일 다운로드: https://www.mql5.com/en/code/15440

분명히 iTime() 이전에 만들어졌습니다. 그들 중 하나는 컴파일되고 두 번째는 다음과 같이 맹세합니다.

기능은 동일합니다.

도전도

욕을 하는 이유는 분명하고 이해하기 쉬우며 자동 고침으로 쉽게 수정할 수 있지만 비슷한 상황에서 다른 행동이 나타나는 것은 놀라운 일입니다.

추신:

컴파일된 표시기가 올바르게 작동합니다.

두 파일 모두 정확히 동일한 오류 목록을 발생시킵니다(총 8개).

 
Stanislav Korotky :

두 파일 모두 정확히 동일한 오류 목록을 발생시킵니다(총 8개).

다시 다운로드하고 컴파일을 시도했지만 둘 다 오류가 있었지만 숫자가 다릅니다: 8과 9


자동 고침 보고서로 판단하면 달라야 합니다.

그래서 어제 ME 실패가 있었습니다. 내가 본 첫 번째 것은 사용자에게 유리한 실패입니다(편집 없이 컴파일되고 작동했습니다!).

 
Igor Zakharov :

다시 다운로드하고 컴파일을 시도했지만 둘 다 오류가 있었지만 숫자가 다릅니다: 8과 9

자동 고침 보고서로 판단하면 달라야 합니다.

예, 실제로 범위가 1개 더 있습니다.