Canvasでクラウドソーシングのプロジェクトを作る - ページ 5

 
Реter Konow:

私の実装では、点Aと点Bは、スライダートラックのX座標(そのスタート)とスライダースライドのX座標という2つのオブジェクトの位置で表現されます。



あなたは狭い視野で、いくつかのObjectGet/Setについて議論しています
少なくとも3つのモデルがコントロールの 中で融合しています - グラフィックス、イベント、データ
それがどこで、どのように描かれるかは問題ではありません。

イベントやデータのモデルは、この影響を受けません。

 
o_O:

描かれたバージョンでも同じです。

あなたは狭い範囲で考えていて、いくつかのObjectGet/Setについて話しています。
このコントロールは、少なくとも3つのモデル(グラフィックス、イベント、データ)を統合しています。
どこにどのように描かれても構いませんし、[......|...]のようなテキスト形式でも構いません。 また、キャンバス上に表示したり、2つのMTオブジェクトを矩形で表示したりすることも可能です。

イベントやデータのモデルには、このような問題はない。


それでも、そのメカニズムはよくわからない。 もっと詳しく、大まかに説明していただけると、理解しやすくなります。
 

根本的な疑問があります。

例えば、1つのチャートに2つのアプリケーション、パネル、インジケータがあるとします。それぞれのキャンバスに描くべきか、それとも二人で共通のキャンバスに描くべきか。

どちらのケースにも疑問があります。

 
o_O:

が少ないだけでなく、まったくありません(すべてが描画されるbitmap_labelを除く)。

テキスト処理(テキストラベル、テキスト入力フィールド)をどのように実装しているのか気になるところです。あなたが解決しなければならない問題の短いリストです。

  • 各国のアルファベットに対応(フォントでは、例えば同じTimes New Romanでも、英語からグレートマイティ、一部のヒンディー語まで、ほぼすべてのアルファベットに対応したアウトラインが用意されています)。
  • テキストのスケーリング:6-8-10-12...72ポイント - 同じフォントサイズでも問題なく設定可能です。ベクトル書体は、そのために作られたようなものです。
  • 斜体、太字、下線......それぞれのフォントやアウトラインのアルゴリズムで何を作るか?
  • 入力・編集、カーソル操作......すべてを絵の形にするのは、大変な作業です。正直なところ、どのように実装するのか想像もつきません。

しかも、すでに動作している「テキストラベル」と「テキスト編集機能付きテキストラベル」を背景にしています。唯一の問題点は、32文字のサイズ制限と、統合フォントが使えないことです。

これらの問題をすべて解くには多くの時間がかかりますが、せいぜい30%程度しか解けないでしょう。何百キロバイトものあなたのコードは、せいぜい標準的な要素から少し外れる程度で、それなりの病気や不具合、さまざまな不愉快な制限を抱えることになります。本当に必要なのか?

 
Vasiliy Sokolov:
Документация по MQL5: Графические объекты / TextOut
Документация по MQL5: Графические объекты / TextOut
  • www.mql5.com
Графические объекты / TextOut - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
o_O:

が少ないだけでなく、まったくありません(すべてが描画されるbitmap_labelを除く)。

また、イベントモデルも忘れてはいけません。キャンバス上のイベントを処理 するようには設計されていません。画面の一定範囲でのキーストローク+マウス座標だけとなります。確かに、OOPでこの暗闇から抜け出すことはできますが、出口は険しく、とても長いものになるでしょう。

 
Реter Konow:

その仕組みがまだ理解できていません。 もっと詳しく、大まかに説明していただけると、理解するのに助かります。
xo. zip アーカイブから kanvas サンプルを実行する https://www.mql5.com/ru/forum/92113#comment_2672543
 
Vasiliy Sokolov:

テキストワークをどのように実装しているのか気になるところですが

のように、TextOut を使ってみましょう。

これらの問題を解決するために、多くの時間を費やすことになります。

乗り越えられない障害に頭をぶつけることはしない。 MCがこれらの問題の解決策を提示しなければ、全体が止まってしまう。

まだSRで返事を待っているところです。

また、イベントモデルも忘れてはいけません。キャンバス上のイベントを処理 するようには設計されていません。

このパネルでは、CHARTEVENY_MOUSE_MOVEは使用されず、すべて単独で分析されます。

イベントや入力キャリッジの表示には問題がないことを信じて。

さて、質問はキーボードイベントについてのみです。

 
o_O:

今では、問題はキーボードイベントだけになりました。

キーボードを使えば、すべてがクリアになる。キーを押すという事象があり、そのキーのコードがある。これ以上何を望む?
 
o_O:

SRにリファインを依頼する予定です。

ところで、私に言わせれば、OnMouseDownイベントを導入することで、通常のDNDという意味では、かなり生活が楽になるのではないでしょうか。