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

 
o_O:

残念ながら、このコードには完全性がありません。現在、チャートイベントはAとaを 区別していません。

すでにSDで書きました。

SSDからの朗報

次のビルドでは、CapsLockとShiftの状態を表すTerminalInfoInteger 定数が追加される予定です。

今、彼らは非正規雇用者です。

1020 - CapsLock
1016 - Shift
1255 - 現在の入力言語のコード

つまり、編集はすでに半ば強制的に行われているのです。))

2つ目の課題は、空間を捉えて入力するチャートを教えることです。

 
Vasiliy Sokolov:
ラグがあったとしても、それは肉眼では見えません。私のパネルでは一時期、MouseMoveが不可視を含む数千のアイテムを送信していました。その後、よりスマートなメーリングを作りましたが、視覚的にはスピードにプラスになりませんでした。
確かにラグはありますね。アイテム数によって異なります。確認しました。オブジェクトの数が400〜500を超え始めると、ドラッグ&ドロップの動作が遅くなるのですが...。私は数ヶ月間、コードの効率化に取り組んできましたが、この効果を克服することはできませんでした。コンピュータの性能が高ければ高いほど、引きずるオブジェクトが多くても、遅さは気にならなくなると思います。
 
Реter Konow:
確かにブレーキはありますね。オブジェクトの数に依存します。確認しました。オブジェクトの数が400~500個を超え始めると、ウィンドウのドラッグ&ドロップが遅くなる...。私は数ヶ月間、コードの効率化に取り組んできましたが、この効果を克服することはできませんでした。パソコンの性能が高ければ高いほど、ラグが目立たないように残るオブジェクトが多いと思います。
性能は、イベント配信のアルゴリズム+渡されたイベントに対するアイテムの最小レスポンスに影響されます。あなたの場合は、イベントそのものが原因ではなく、これらのイベントを処理するアルゴリズムが原因で速度が低下したようですね。
 
o_O:

インジケーターの複数のインスタンスが1つのカンバスに出力されるのですか? どうでしょう、ちょっと不気味ですね。

なーんだ。MouseDownイベントさえあれば、私は満足です。
 
Комбинатор:
なーんだ。とにかく、必要なのはMouseDownイベントだけです。
CHARTEVENT_MOUSE_MOVE イベントを 監視し、マウス、Crtl、Shift キーの状態を送信します。
 
Vasiliy Sokolov:

アナトリーの記事の後、またプロフィールに同じ卵を作るのは、少なくとも変な娯楽だと思われるのですが。グラフィックは、MTではまったく話題になりません。

  • ユーザーにはグラフィカルなインターフェースは必要ない。その結果、GUIを監視することは不可能であり、その開発は決して報われることはないでしょう。
  • スキルを上げたいのであれば、すぐにどこか後輩に就職したほうがいい。だから、少なくとも、すぐにでもお金を稼ぎ始めて、少しずつスキルを上げていくことができる。
  • ターゲット層が狭すぎる。誰が図書館を必要としているのか?- 一握りのプログラマーを除いては、絶対に誰もいませんし、彼らは必要なライブラリはとっくにすべて書き終えているのです。例えば、私は自分のグラフィックライブラリを2つ持っています。

ここで誰かに教えたいわけではないのですが、アドバイスとして、みんな、粉の匂いを嗅いでみてください。ユーザーとの協働を学ぶ彼らの心理を学ぶ。彼 らのアイデアを監視する方法を学ぶ。そして、すぐに地に足をつけて、まったく違う方法で推論をするのです。私も、かつては特別で美しい考えを信じていましたが、このような無意味なことは、うまくいかないのです。ここで議論していることは、あなた以外の人には何の役にも立ちません。

+ そうだ

私が唯一、ユーザーに「本当にクールで美しいインターフェイスを作ろう」と言った のは、この時です。

本当に必要なのは、華美な装飾や追加機能のないExpert Advisor、つまり使い勝手の良いインターフェイスではないのです。

ユーザーが一番望んでいるのは、条件通りの機能である。

我々は、すべてのインターフェイスの開発+デザインで - デバッグのためにまだ時間のまともな量を取ることは非常に高価なリソースを費やしていることを知っているTIME!

 
Ilyas:
CHARTEVENT_MOUSE_MOVE イベントを 監視し、マウス、Crtl、Shift キーの状態を送信します。
上で説明したように、このイベントはオブジェクトに紐づいておらず、頻繁に送られすぎています。モノに縛られないことのほうが重要です。
 
Ilyas:
CHARTEVENT_MOUSE_MOVE イベントを 監視し、マウス、Crtl、Shift キーの状態を送信します。

は、期待通りとは言い難い。

OBJECT_CLICK イベントは、マウスが持ち上げられた後に発生するため、オブジェクト上でマウスが押された場合は追跡できません。

オブジェクト上でマウスが押されたときに、スタートイベントを発生させたい。

コンビナート です。
上で説明したように、このイベントはオブジェクトにリンクしておらず、頻繁に送信されます。モノに縛られないことの方が重要です。
CHARTEVENT_OBJECT_DRAG - 確か 、動作の開始時ではなく、マウスを離した後に生成されるのでは?
 
o_O:
CHARTEVENT_OBJECT_DRAG は、ほとんど意味のないイベントです。なぜなら、標準的な方法で グラフィカルオブジェクトをドラッグすることの終わりを 告げるからです(つまり、それは選択されているはずで、選択されたオブジェクトはdelを押すことで完全に削除されます)。
 
Vasiliy Sokolov:
性能は、イベント配信アルゴリズム+渡されたイベントに対する最小限のアイテムの反応に影響されます。あなたの場合、遅いのはイベントそのものではなく、これらのイベントを処理するアルゴリズムが原因だったようですね。

マウスの左ボタンが押された状態も固定されているMouseMoveイベントのOnChartEvent()で、ウィンドウの移動ハンドルが押されたイベントをキャッチしているのです。次に、ウィンドウ移動関数を呼び出し、現在のカーソルの移動量に等しいXとYのシフト(ObjectSetInteger()を使用)を、ループ内のすべてのウィンドウオブジェクトに適用します。以上です。

同時に、ウィンドウ内のオブジェクトが増えれば増えるほど、オブジェクトを移動させなければならないことも明らかです。どうやら、移動させるオブジェクトの数が多いことが、速度低下の原因だったようです...。