MQLで書かれたUIのギャラリー - ページ 10

 

...そして最後に、今日はもうひとつ生意気なことを。


どのウィンドウが "本物ではない "のか、この方がわかりやすいだろう))

 
Реter Konow #:

ええ、もちろん。問題なかったよ。

方法は聞かないでくれ、何も覚えていないんだ。)

ニコライがうまく答えてくれるだろう。

MQファスト・トレーディングの内蔵パネルでさえ、このようなバグがあるのですから!

 
Aleksey Vyazmikin #:

MQファスト・トレーディングの内蔵パネルでさえ、このようなバグがあるのだから!

オブジェクトのプロパティを制御するだけでよい。アルゴリズムは、カーソルがどのオブジェクトの上にあり、どのオブジェクトが「フォーカス」されているかを知らなければならない。一番下にあるオブジェクトのプロパティを変更して、カーソルとクリックに反応しないようにする。そう思うが、覚えていないので間違っているかもしれない。もう何年も前のことだ。

 
私のアルゴリズムは、カーソルがウィンドウの上にあり、私がウィンドウの中で何かをスクロールしている間、チャートのスクロールをオフにしたことを覚えている。そして、カーソルがチャートの空きスペースに戻ると、アルゴリズムは再びスクロールを有効にした。
 
Реter Konow #:
そういえば

もう見れないの?

 
Aleksey Vyazmikin #:

もう観られないの?

アーカイブに何万行ものコードが何十個ものファイルに散らばっていて、全然覚えていないんだ。

 
Реter Konow #:

私のアーカイブには何万行ものコードが何十ものファイルに散らばっているのだが、何も覚えていないのだ。

ああ、なんとなくわかります、私も別のコンピューターで持っているので...。すべてをまとめようとすると、コードの意味を理解していないことに気づくんだ。)今、コードにコメントをたくさん書くようになりました。コードを書いているときは、不必要な時間の浪費のように見えますが、1年後に戻ってくると、とても役に立ちます。

 
Aleksey Vyazmikin #:

ああ、よくわかるよ、僕も違うコンピューターでやってるからね......。すべてをまとめようとすると、コードの意味を理解していないことに気づくんだ :)コードを書いているときは、不必要な時間の浪費のように思えるけれど、1年後に戻ってくると、とても役に立っているんだ。

アーカイブに入ったら、ギャラリーが永遠に終わらないんじゃないかと心配になります(笑)))))そこにはコンストラクターがあって、そこに新しいウィンドウを作るのはとても簡単なんだ。ビジュアルエディターを完成させたかったら?そうしたら、何ヶ月も立ち往生することになる。)

 
Aleksey Vyazmikin #:

...コードを書くときには不必要な時間の浪費のように思えるが、1年後に戻ってくると、とても役に立っている。

コメントについてはまったく同感だ。コードの説明は絶対に書くべきだ。

 
Aleksey Vyazmikin #:
このようなインターフェースを開発した経験はありませんが、別のソースから入手したものを使用したところ、重大な欠点がありました。この問題は解決できたのですか?

もちろん、私のインターフェイスはもっとシンプルなものでした。キャンバスは使わず、標準的なコントロールからパネルを作っただけです。チャート上の他のオブジェクトが透けて見えるのを防ぐために、1分間に1回、すべてのウィンドウ・コンポーネントを描き直しました:

if (iTime(_Symbol,PERIOD_M1,0) > LastMinute && !IsTesting()) { 
   LastMinute = iTime(_Symbol,PERIOD_M1,0);
   for (int i = 0; i < 45 ; i++) {
      long tf = ObjectGetInteger(0, Controls[i], OBJPROP_TIMEFRAMES);
      if (ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, -1)) 
         ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, tf);
   }
}

ここで、Controlsはコンポーネント名を含む配列である。