MetaTrader 4 Build 529 ベータ版リリース、新コンパイラー搭載 - ページ 16

 
artamir:

だから、私のctrl+F1は動作しません :( 私は知らない

この組み合わせで何ができるのでしょうか? それくらいならF1ヘルプが効きます。
 
ALXIMIKS:

の場合、変数の初期化が必要です。

これで、すべてのdatetimeを初期化する必要があるのか?

 
ALXIMIKS:

この組み合わせで何ができるのでしょうか? F1がそういうものであるならば、F1は有効です。
ありがとうございます。
 
artamir:
ありがとうございます。


まあ、どういたしまして)) 実際、あまりいい出来ではないのですが(( コンパイラの実態との乖離が多いので))

 

すでに起動して動作している インジケーターのパラメーターを ダブルクリックで 変更 すると、そのようになるということなのでしょうか。

インジケータがスタティック変数を更新 しないから、再描画されないのでは?

 

XPとW7の異なるコンピュータで、奇妙なことに気づきました。

関数内で配列を初期化 する際、配列が全て埋まらず、0値だけが埋まる ...

すべての関数の外側でグローバルに配列を初期化する場合,配列は本来あるべき姿に完全に満たされます.

 
コードの例を教えてください。これがエラーの原因である可能性が高いです。
 
Renat:
コードの例を教えてください。これがエラーの原因である可能性が高いです。
このような形で機能する...
//=====================================================================================// 
// Функция пишет комментарии 
//=====================================================================================//  
string info [];
color  cv   [];

void pr (string txt, color et)
{
int Coment = 10;

ArrayResize(info,Coment);
ArrayResize(cv,Coment  );

txt=txt+"  -"+TimeS();
for(i=Coment-1; i>=1; i--){info[i]=info[i-1]; cv  [i]=cv  [i-1];}info[0]=txt;cv[0]=et;
for(i=Coment-1; i>=0; i--)
   if(info[i]!="")
     {
      if(ObjectFind("txt"+(string)i)==-1)
      ObjectCreate ("txt"+(string)i,OBJ_LABEL,0,0,0);
      ObjectSet    ("txt"+(string)i,OBJPROP_CORNER,3);
      ObjectSet    ("txt"+(string)i,OBJPROP_XDISTANCE,10);
      ObjectSet    ("txt"+(string)i,OBJPROP_YDISTANCE,0+15*(Coment-i));
      ObjectSetText("txt"+(string)i,info[i], 10, "Verdana",cv[i]);
     }

}

こうはいかないんです。

//=====================================================================================// 
// Функция пишет комментарии 
//=====================================================================================//  
void pr (string txt, color et)
{
int Coment = 10;
string info [];
color  cv   [];
ArrayResize(info,Coment);
ArrayResize(cv,Coment  );

txt=txt+"  -"+TimeS();
for(i=Coment-1; i>=1; i--){info[i]=info[i-1]; cv  [i]=cv  [i-1];}info[0]=txt;cv[0]=et;
for(i=Coment-1; i>=0; i--)
   if(info[i]!="")
     {
      if(ObjectFind("txt"+(string)i)==-1)
      ObjectCreate ("txt"+(string)i,OBJ_LABEL,0,0,0);
      ObjectSet    ("txt"+(string)i,OBJPROP_CORNER,3);
      ObjectSet    ("txt"+(string)i,OBJPROP_XDISTANCE,10);
      ObjectSet    ("txt"+(string)i,OBJPROP_YDISTANCE,0+15*(Coment-i));
      ObjectSetText("txt"+(string)i,info[i], 10, "Verdana",cv[i]);
     }
}
 
初回起動時にArrayInitializeを試してみて ください。
 
VOLDEMAR:
このように動作します.

このように動作しない

以前はうまくいっていたのでしょうか? 変数iをどこで宣言しているのかがわかりません。

for(i=Coment-1; i>=1; i--){info[i]=info[i-1]; cv  [i]=cv  [i-1];}info[0]=txt;cv[0]=et;
for(i=Coment-1; i>=0; i--)