記事"グラフィカルインターフェイスXI:ライブラリコードのリファクタリング(ビルド14.1)"についてのディスカッション

 

新しい記事 グラフィカルインターフェイスXI:ライブラリコードのリファクタリング(ビルド14.1) はパブリッシュされました:

ライブラリが大きくなるにつれて、コードをサイズを減らすために最適化が再び必要がです。本稿で説明するライブラリのバージョンはさらにオブジェクト指向になっており、コードの学習もさらに容易になります。読者は、最新の変更の詳細な記述によって、独自のニーズに基づいて独自にライブラリを開発できるでしょう。

テスト目的のMQLアプリケーションを実装しました。そのグラフィカルインタフェースにはライブラリのすべてのコントロールが含まれており、そのすべてがどのように機能するかを見ることができます。これは次のようになります。 

図12 MQLテストアプリケーションのグラフィカルインタフェース

図12 MQLテストアプリケーションのグラフィカルインタフェース

作者: Anatoli Kazharski

 


このアップデートを楽しみにしていました!
信じられない仕事です!
あなたとMetaQuotes Software Corpに感謝します。


 

ライブラリーのユーザーインターフェイスが変わったそうですね?

 

素晴らしい仕事だ!

このようなアップデートをとても長い間待っていました。

誰か早急に翻訳してほしい!

 
Konstantin:

ライブラリーのユーザーインターフェイスが変わったのですね?

今回のアップデート(14.2)からは別の記事が出る予定です。公開されるのをお待ちください。すべての変更と追加について詳しく説明しています。
 
Anatoli Kazharski:
今回のアップデート(14.2)からは別の記事が掲載される予定だ。公開されるのを待とう。すべての変更と追加が詳細に書かれている。

とても待ち遠しいよ :)変更点はとてつもなく大きいが、残念ながらすべてが良い方向に向かっているわけではない...。

まあ、あるいは今のところうまく整理されていない。待って、読んで、理解してください :)

 
Oleksii Chepurnyi:

...

変化はとてつもなく大きいが、残念ながらすべてが良い方向に向かっているわけではない......。

例えば?
 
Anatoli Kazharski:
例えば?

重要な順に並べると)

1.SpinEditがCTextEditになった。以前は、入力フィールドを クリックし、テキストを選択し、新しい値を入力し、エンターキーを入力していた。今、私たちはクリックし、カーソルを置くだけで、マウスは何も強調表示されず、数字キーボードに反応しません。まあ、Doubleの代わりにStringというのも、いいのか悪いのかわからないが......。やり直してみよう。)

2.コンボボックス。私は小さなドロップダウンリストを使っているので、スクロールバーは必要ない。リストの1つの項目の高さのどこかで、リストの高さを増やすことによって、私はそれを削除することに成功しました。

3.再初期化時の再描画が大きくなった。TFを変更すると、1つの小さなウィンドウ(~25項目)が~200msの間消えてしまう。以前はほとんど気になりませんでした。

追記 直感的には、ダブルクリックでウィンドウを最小化/アンマップしたいです :)もしかしたらライブラリに実装されているかもしれませんが、私が見つけていないだけでしょうか?

 
Oleksii Chepurnyi:

...

1.SpinEditがCTextEditになりました。以前は、入力フィールドを クリックし、テキストを選択し、新しい値を入力し、エンターキーを入力していました。今はクリックしてもカーソルが置かれるだけで、マウスで選択されることはなく、数字キーボードにも反応しない。まあ、Doubleの代わりにStringというのも、いいのか悪いのかわからないが......。やり直してみよう。)

2.コンボボックス。私は小さなドロップダウンリストを使っているので、スクロールバーは必要ない。リストの1つの項目の高さのどこかで、リストの高さを増やすことによって、私はそれを削除することに成功しました。

3.再初期化時の再描画が大きくなった。TFを変更すると、1つの小さなウィンドウ(~25項目)が~200msの間消えてしまう。以前はほとんど気にならなかった。

...

わかりました。

Oleksii Chepurnyi:

...

追記:直感的にダブルクリックでウィンドウを最小化/最小化解除したいです :)もしかしたら、ライブラリに実装されているかもしれませんが、私が見つけていないだけでしょうか?


まだです。

 

コードの圧縮、クラスの普遍化、そしてテクノロジーの質的進歩。やっとわかったよ。よかった。


現段階では、記事から理解したように、ほとんどすべての基本要素オブジェクトはビットマップ・タイプを獲得しており、要素の構成部分、つまり絵、テキスト、矩形のみが描画される。


完全な描画に切り替えるための最初の技術的障害は、OnChartEvent() が、完全に描画されたオブジェクトをクリックしたときのイベントを捕捉しないことです。

2つ目は、描画されたオブジェクトにZorderプロパティを設定できないことです(ここで解決策が見つかったと思います)。


それから、もっと多くの困難があります...。


質問:結果から判断すると、そのままでも優れたGUIがあるのに、なぜそれらを克服する必要があるのでしょうか?さらに変形させる実用的な意味は何ですか?

 
Реter Konow:

コードの圧縮、クラスの普遍化、そしてテクノロジーの質的進歩。やっとわかったよ。よかった。


現段階では、記事から理解したように、ほとんどすべての基本要素オブジェクトはビットマップ・タイプを獲得しており、要素の構成部分、つまり絵、テキスト、矩形のみが描画される。


完全な描画に切り替えるための最初の技術的障害は、OnChartEvent()が、完全に描画されたオブジェクトをクリックしたときのイベントを捕捉しないことです。

2つ目は、描画されたオブジェクトにZorderプロパティを設定できないことです(ここで解決策が見つかったと思います)。


それから、もっと多くの困難があります...。


質問:結果から判断すると、そのままでも優れたGUIがあるのに、なぜそれらを克服する必要があるのでしょうか?これ以上変形させる現実的な意味はあるのでしょうか?

ピーター、これらの「問題」は1日で解決できるよ。私はかつて、グラフィカル・オブジェクトで構築されたインターフェイスから、完全に1枚のビットマップで描かれたインターフェイスに切り替えることで、それを実現しました。