MQLで書かれたUIのギャラリー - ページ 55 1...484950515253545556575859606162...69 新しいコメント Реter Konow 2024.07.28 11:35 #541 Andrey Barinov #:また、フルスクリーンのキャンバスは変更するたびに完全に再描画されるが、50ミリ秒もかからない...。 最もコストがかかるのはテキストの描画だ。そのため、毎回TextOutを使わないように、配列に格納している。その方がずっと速くなる。 はい、 TextOutは使って います。 それで何ができるか考えてみる。 Реter Konow 2024.07.28 11:56 #542 一般的には、次のリリースまでに描画ブロックをリファクタリングしてスピードを上げる。 しかし、最も重要なのはエンジンを完成させることだ。 Andrey Barinov 2024.07.28 12:08 #543 Реter Konow #:10~17個のウィンドウの面積の合計は、フルスクリーンよりはるかに大きい。同感だ。さらに、影、アイコン、フレームを作成するために必要な二次的な追加描画......。そして、TextOutについては 、私がチェックして書くつもり だ。面白いアイデアだ。 私はあなたの単純な算術を理解していない :)。私の演算では、ユーザーに見えないピクセルを描画する必要はないし、描画するためのキャンバスの最大サイズはピクセル単位の表示サイズによって制限されている。 ウィンドウがいくつあっても、レイヤーで描画する。ウィンドウの数は100にもなる。単純なプリミティブは極わずかな時間で描画される。一番長いのは、上に書いたようにテキストだ。しかし、それらは最初の使用時にTextOutの助けを借りて、さらにすでに準備のできた配列から。 Реter Konow 2024.07.28 12:31 #544 今後の作業計画を承認する必要がある。 毎週更新する。土曜日か日曜日 1.次のリリースでは、エンジンのフルバージョンをリリースする。バグを修正し、レンダリングをスピードアップする。 2.回目のリリースはテーブル専用になる。基本的な機能を復活させます。 3.3番目のリリースでは、動的なテーブルを作ります。 週間以内に実装したい。やってみます。 4.4番目のリリース - ダイナミックウィンドウ。 完成版を掲載するつもりだ。 現段階では、ビルダー、エンジン、マークアップ 言語の基本バージョンは完成したと考えてよい。 KIB-codeで書かれたテンプレートのブランチを 必ず開設し、完成したウィンドウやエレメントのグループを掲載するつもりだ。インターフェイスを作りたい人たちが簡単に作れるように、イラストも添えます。 そして、人々があらゆる可能性を使えるように、チュートリアルの記事を書いていこうと思います。 このスレッドでは、できる限りコード、写真、説明資料を投稿し続けるつもりだ。私は上記の作業でとても忙しくなるだろう。 Nikolai Semko 2024.07.28 12:40 #545 パースはない。テキストやシャドウなどを駆使したインターフェイスは、弱いプロセッサで最大50msだ。バグを探してください。プロファイリングを実行してください。どの関数が95%の時間を食っているか見てください。たぶん、ChartGetやXY関数を使っているのでしょう(チャートへのリンクはありませんが)。とにかくプロファイリングを実行してください。たった40秒しかかからない。 hini 2024.07.28 12:43 #546 KIBコードで書かれたテンプレートブランチビルダーのコードと混ぜてはいけない。別のプロジェクトとしてリリースされるべきです。 Реter Konow 2024.07.28 12:54 #547 Andrey Barinov #:私はあなたの単純な算術を理解していません :)。私の計算では、ユーザーに見えないピクセルをレンダリングする必要はなく、レンダリングのためのキャンバスの最大サイズはピクセル単位のディスプレイサイズによって制限されます。私はレイヤーで描画するので、ウィンドウがいくつあっても、すべて1つのビットマップになります。ウィンドウの数は100にもなる。単純なプリミティブはごくわずかな時間で描画される。一番長いのは、上に書いたようにテキストだ。しかし、それらは最初の使用時にTextOutの助けを借りて、さらにすでに準備のできた配列から。 つの大きなキャンバスで作業するには、多くの制限がある。このオプションについてはすでに考えていて、ニコライとも話し合った。 標準のCcanvasクラスを使うからそうなるのであって、その枠の中には既成のソリューションがある。しかし、私は Ccanvas クラスを使っていません。レンダリングコードはすべて個人開発です。だから私は、「すべてのものに1つのキャンバスを」というコンセプトにはこだわらない。私の意見では、グラフィカルな環境では技術的に不便で非効率的なソリューションだ。1つのビットマップを持ち、プログラムによってその上に画像の相互作用を構築するよりも、ビットマップオブジェクトのセットを使い、既製のリソースを添付する方が簡単だ。想像することさえ難しい。しかし、これは本題ではない。 キャンバスが1つしかない場合、マルチウィンドウGUIのコンセプトを実現するのがどれほど難しいか想像してみてほしい。私ならそんな仕事は引き受けない。 しかし、これでも決定的ではない。キャンバスが1つしかない場合、インターフェイスのウィンドウを移動させるにはMQL環境内で 再描画する必要があるからです。 一方、各ウィンドウが独自のビットマップオブジェクトを占有し、ObjectSetInteger()関数で移動させる場合、移動したオブジェクトの再描画はMQL環境外で動作する標準関数で 行います。そのため、はるかに高速です。 他のソリューションがより効果的に機能するよう、開発の方向性が異なるだけです。 TextOutに関する ヒントをありがとうございました。この点を調査してみます。 Реter Konow 2024.07.28 12:56 #548 hini #: テンプレート・ブランチはKIBコードで 記述さ れる。ビルダーのコードと混ぜてはいけません。別のプロジェクトとしてリリースされるべきです。 はい、デバッグのために、ユーザー・プログラムをエンジンから切り離すことを実装するつもりです。おそらく誤解している。 Andrey Barinov 2024.07.28 12:58 #549 Реter Konow #:一枚の大きなキャンバスで仕事をするのは限界がある。私はすでにそのような選択肢を考え、ニコライとも話し合った。 標準のCcanvasクラスを使っているからそうなっているのであって、その枠組みの中には既成のソリューションがある。しかし、私は Ccanvas クラスを使っていません。レンダリングコードはすべて個人開発で書いている。だから、私は「すべてのものに1つのキャンバスを」というコンセプトにはこだわらない。私の意見では、グラフィカルな環境では技術的に不便で非効率的なソリューションだ。1つのビットマップを持ち、プログラムによってその上に画像の相互作用を構築するよりも、ビットマップオブジェクトのセットを使用し、既製のリソースを添付する方が簡単です。想像することさえ難しい。しかし、これは重要なことではない。キャンバスが1つしかない場合、マルチウィンドウGUIのコンセプトを実現するのがどれほど難しいか想像してみてほしい。私ならそんな仕事は引き受けない。しかし、これでも決定的ではない。キャンバスが1つしかない場合、インターフェイスのウィンドウを移動させるにはMQL環境内で 再描画する必要があるからだ。 一方、各ウィンドウが独自のビットマップオブジェクトを占有し、ObjectSetInteger()で移動する場合、移動時の再描画はMQL環境外で動作する標準関数に委ねられる。したがって、はるかに高速になります。他のソリューションがより効率的に動作するように、開発の方向性が少し異なるだけです。TextOutについての ヒントをどうもありがとう。この点について調査してみます。 ただ、標準のカンヴァスは使っていません:)。 それに、1つのビットマップにマルチウィンドウ・インターフェイスを実装する方が簡単だと思ったんだ。しかし、それは人それぞれだ! 実際、ObjectSetIntegerなどを使うよりも、キャンバス全体を再描画したほうが速いようだし。 Реter Konow 2024.07.28 13:06 #550 Andrey Barinov #:ただ、純正のキャンバスは使っていない んだ。)それに、1つのビットマップにマルチウィンドウのインターフェイスを実装する方が簡単だと思ったんだ。しかし、人それぞれだ! 残念なことに、すべての場合ではありません。私のタスクでは、限られたビットマップのセットで作業する方が技術的に簡単だ。そして100%速い。はるかに 速い。 でも、他の開発では他のソリューションの方がうまくいく。:) 1...484950515253545556575859606162...69 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
また、フルスクリーンのキャンバスは変更するたびに完全に再描画されるが、50ミリ秒もかからない...。
最もコストがかかるのはテキストの描画だ。そのため、毎回TextOutを使わないように、配列に格納している。その方がずっと速くなる。
はい、 TextOutは使って います。 それで何ができるか考えてみる。
10~17個のウィンドウの面積の合計は、フルスクリーンよりはるかに大きい。同感だ。さらに、影、アイコン、フレームを作成するために必要な二次的な追加描画......。
そして、TextOutについては 、私がチェックして書くつもり だ。面白いアイデアだ。
私はあなたの単純な算術を理解していない :)。私の演算では、ユーザーに見えないピクセルを描画する必要はないし、描画するためのキャンバスの最大サイズはピクセル単位の表示サイズによって制限されている。
ウィンドウがいくつあっても、レイヤーで描画する。ウィンドウの数は100にもなる。単純なプリミティブは極わずかな時間で描画される。一番長いのは、上に書いたようにテキストだ。しかし、それらは最初の使用時にTextOutの助けを借りて、さらにすでに準備のできた配列から。
今後の作業計画を承認する必要がある。
毎週更新する。土曜日か日曜日
1.次のリリースでは、エンジンのフルバージョンをリリースする。バグを修正し、レンダリングをスピードアップする。
2.回目のリリースはテーブル専用になる。基本的な機能を復活させます。
3.3番目のリリースでは、動的なテーブルを作ります。 週間以内に実装したい。やってみます。
4.4番目のリリース - ダイナミックウィンドウ。 完成版を掲載するつもりだ。
現段階では、ビルダー、エンジン、マークアップ 言語の基本バージョンは完成したと考えてよい。
KIB-codeで書かれたテンプレートのブランチを 必ず開設し、完成したウィンドウやエレメントのグループを掲載するつもりだ。インターフェイスを作りたい人たちが簡単に作れるように、イラストも添えます。
そして、人々があらゆる可能性を使えるように、チュートリアルの記事を書いていこうと思います。
このスレッドでは、できる限りコード、写真、説明資料を投稿し続けるつもりだ。私は上記の作業でとても忙しくなるだろう。
私はあなたの単純な算術を理解していません :)。私の計算では、ユーザーに見えないピクセルをレンダリングする必要はなく、レンダリングのためのキャンバスの最大サイズはピクセル単位のディスプレイサイズによって制限されます。
私はレイヤーで描画するので、ウィンドウがいくつあっても、すべて1つのビットマップになります。ウィンドウの数は100にもなる。単純なプリミティブはごくわずかな時間で描画される。一番長いのは、上に書いたようにテキストだ。しかし、それらは最初の使用時にTextOutの助けを借りて、さらにすでに準備のできた配列から。
つの大きなキャンバスで作業するには、多くの制限がある。このオプションについてはすでに考えていて、ニコライとも話し合った。
標準のCcanvasクラスを使うからそうなるのであって、その枠の中には既成のソリューションがある。しかし、私は Ccanvas クラスを使っていません。レンダリングコードはすべて個人開発です。だから私は、「すべてのものに1つのキャンバスを」というコンセプトにはこだわらない。私の意見では、グラフィカルな環境では技術的に不便で非効率的なソリューションだ。1つのビットマップを持ち、プログラムによってその上に画像の相互作用を構築するよりも、ビットマップオブジェクトのセットを使い、既製のリソースを添付する方が簡単だ。想像することさえ難しい。しかし、これは本題ではない。
キャンバスが1つしかない場合、マルチウィンドウGUIのコンセプトを実現するのがどれほど難しいか想像してみてほしい。私ならそんな仕事は引き受けない。
しかし、これでも決定的ではない。キャンバスが1つしかない場合、インターフェイスのウィンドウを移動させるにはMQL環境内で 再描画する必要があるからです。 一方、各ウィンドウが独自のビットマップオブジェクトを占有し、ObjectSetInteger()関数で移動させる場合、移動したオブジェクトの再描画はMQL環境外で動作する標準関数で 行います。そのため、はるかに高速です。
他のソリューションがより効果的に機能するよう、開発の方向性が異なるだけです。
TextOutに関する ヒントをありがとうございました。この点を調査してみます。
テンプレート・ブランチはKIBコードで 記述さ れる。
はい、デバッグのために、ユーザー・プログラムをエンジンから切り離すことを実装するつもりです。おそらく誤解している。
一枚の大きなキャンバスで仕事をするのは限界がある。私はすでにそのような選択肢を考え、ニコライとも話し合った。
標準のCcanvasクラスを使っているからそうなっているのであって、その枠組みの中には既成のソリューションがある。しかし、私は Ccanvas クラスを使っていません。レンダリングコードはすべて個人開発で書いている。だから、私は「すべてのものに1つのキャンバスを」というコンセプトにはこだわらない。私の意見では、グラフィカルな環境では技術的に不便で非効率的なソリューションだ。1つのビットマップを持ち、プログラムによってその上に画像の相互作用を構築するよりも、ビットマップオブジェクトのセットを使用し、既製のリソースを添付する方が簡単です。想像することさえ難しい。しかし、これは重要なことではない。
キャンバスが1つしかない場合、マルチウィンドウGUIのコンセプトを実現するのがどれほど難しいか想像してみてほしい。私ならそんな仕事は引き受けない。
しかし、これでも決定的ではない。キャンバスが1つしかない場合、インターフェイスのウィンドウを移動させるにはMQL環境内で 再描画する必要があるからだ。 一方、各ウィンドウが独自のビットマップオブジェクトを占有し、ObjectSetInteger()で移動する場合、移動時の再描画はMQL環境外で動作する標準関数に委ねられる。したがって、はるかに高速になります。
他のソリューションがより効率的に動作するように、開発の方向性が少し異なるだけです。
TextOutについての ヒントをどうもありがとう。この点について調査してみます。
ただ、標準のカンヴァスは使っていません:)。
それに、1つのビットマップにマルチウィンドウ・インターフェイスを実装する方が簡単だと思ったんだ。しかし、それは人それぞれだ!
実際、ObjectSetIntegerなどを使うよりも、キャンバス全体を再描画したほうが速いようだし。
ただ、純正のキャンバスは使っていない んだ。)
それに、1つのビットマップにマルチウィンドウのインターフェイスを実装する方が簡単だと思ったんだ。しかし、人それぞれだ!
残念なことに、すべての場合ではありません。私のタスクでは、限られたビットマップのセットで作業する方が技術的に簡単だ。そして100%速い。はるかに 速い。
でも、他の開発では他のソリューションの方がうまくいく。:)