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

 
hini #:
私のOSの問題かどうかはわかりませんが、gifをダウンロードしました。ただ、報告しておきます。
はい、原因がわかりました。異なる方法でチャートのサイズを変更すると、異なる組み合わせのOnChartEvent()イベントが発生する。手動で変更する場合、OnChartChangeイベントは2回来る(チェックした)。チャートを切り替えるとき - 1回か2回。ナビゲータ・ウィンドウを閉じたとき、1回だけCharEvent Customとして他のイベントが来る。ターミナル・ウィンドウを別のモニターに移動するとき - 1回。

一般に、チャート・サイズを変更するときには、すべてのイベントの組み合わせをキャッチする条件を書く必要がある。
 
チャートのサイズを 以前に記録したものと比較して単純にチェックできない理由を補足しておきます。

チャートを切り替えるとき、チャート・サイズのChartGetInteger()関数が正しくない値を送信するため、アルゴリズムがサイズが変更されたと「思い」、タスクバーがその場所から「ジャンプ」してしまうのだ。この問題を回避するのに苦労した。今度は、これらのイベントでChartGetInteger()関数に報告されるチャート・サイズの値がどのようなものかをチェックするつもりだ。
 
つまり、チャートを切り替えても、サイズは変わらず、ChartChangeイベントは来るが、ChartGetInteger()関数は、なぜか常に480(幅)と167(高さ)のサイズを報告する。どのチャート・サイズでも 常にです。(ビルド2470。新しいものはまだチェックしていません)。
 
新しいビルド(4435)でチャートを切り替えると、ChartGetInteger()関数は幅490、高さ103の値を返します。実際のチャートの サイズは幅1068、高さ438です。

なお、チャートを切り替えてもサイズは変わりません。
 
これらの条件に基づき、私はチャート・サイズの 実際の変化と誤った変化を区別するために、受信イベントの特異性を研究し続けるつもりである。そして、開発者がこの機能を修正したら、私はコードを単純化するだけである。:)
 
異なるチャート・リサイズ・イベントを テストした。問題はチャートの切り替えにのみあるようで、実際のリサイズは発生しない。しかし、ChartGetInteger()関数は490から103を持続的に報告する。

他のイベントではすべて正常です。


次のリリースでタスクバーを修正します。
 
Реter Konow チャート・リサイズ・イベントを テストした。この問題はチャートが切り替わったときにのみ発生するようで、その場合は実際のリサイズは発生しない。しかし、ChartGetInteger()関数は一貫して490から103を報告する。

他のイベントはすべて正常です。


タスクバーの問題は次のリリースで修正される予定です。
ご苦労様でした!これからもよろしくお願いします。
 
hini #:
お疲れさまでした!作品を楽しみにしています。
ありがとうございました!
 

クリーンアップ、再コンパイル、再インストール。

気づいたことを順不同で列挙する:

1.ウィンドウを開いた後、タスクバーに 何も 表示 されない。ウィンドウを最小化すると、ボタンが表示される。展開しても消えない。Windowsのように」というコンセプトがあるのなら、すぐに表示されるはずである。

2.ダイナミックウィンドウでは、最小化ボタンと最大化ボタンの上にカーソルを移動すると、カーソルがウィンドウ内にある限り、ハイライトされたままになる。

3.ダイナミックウィンドウの場合、 ヘッダーは拡大 すると グレーになり、戻るとグレーのままで、最小化して戻ったときだけ色が元に 戻る。

4.ウィンドウを拡大しても、チャートの時間スケールと価格スケールは非表示になりません。

5.i、AT、_X2X、"MF"、5、_Y2H、"Report"、5」コマンドで「H_TAB、"Report"」の下に置かれた表は、左端の設定を無視する。i、AT、_X2X、"MF"、5、_Y2Y、"MF"、20、」も同様。

6.最も重要なこと。ダイナミック・ウィンドウがV_BOXを 許さないという事実は、私のデザインを完全に変えてしまった。つのテーブルは、位置決めしやすく、スクロールしやすいように、それぞれのボックスに入っていた。MF "上に直接描画しなければならなくなった今、下のテーブルを上のテーブルのすぐ下に配置することはできない。バインディング"i、AT、_X2X、"MF"、5、_Y2H、"Table1"、5、「Table1というグループ名は要素ではないため、うまくいきません。テーブルの最後の行にバインドすることはできましたが、ダイナミック・テーブルではこの方法は使えません。グループではなくテーブルを参照する方法がわかりません。もしプログラムでテーブルに行を追加 するのであれば、テーブルを参照する方法が想定されます。

7.もうひとつ。あなたのダイナミック・ウィンドウは、拡大・縮小可能なピアウィンドウです。ウィンドウではなく、デスクトップが欲しいです。あなたのコンストラクタのように。そうすれば

a) チャート全体をカバーするように、一度に拡大して開く。

b) ヘッダーとフレームを持たない(タスクバーだけ)。

c) 折りたたむことができない。

d) 通常のウィンドウのようにアイテムを配置できるようにする。

つまり、DINAMICをFULLSCREENまたはDESKTOPに置き換える。そのための基礎はすでにある。

 
Edgar Akhmadeev #:

...

詳細なご意見ありがとうございます。

動的ウィンドウの問題点であるテーブルの配置の複雑さを解決しようと思います。

動的なフルスクリーンウィンドウは、ユーザーGUIの中で特別な目的を持っており、その結果、特定の制限があります。SETTINGS "ウィンドウのような普遍的なものではありません。そして、これは論理的なことだ。結局のところ、特別に "カスタマイズ "されたものはすべて、常に何らかの形で制限される。

しかし、ダイナミック・テーブルや無限リストは、ダイナミック・ウィンドウの他のエレメント・グループと組み合わせることができます。他のグループとテーブルの互換性を実現するには?- これは技術の問題である。

実験のために、あなたのテーブルをフルスクリーンウィンドウに挿入してみます。もちろん、コードを修正する必要がありますが...。

結果は?

(画像をクリック)


率直に言って、すべてが非常に「未加工」なので、コードはまだ掲載しません。トリックや「松葉杖」を使わなければならなかった。しかし、ご覧の通り、すべてうまくいく。