ボタンを使ったタスク - ページ 3

 
Vladimir Pastushak:

まさか、そんな単純な話ではないでしょう、コードが上にあるボタンは、必ずコードが下にあるボタンを押すのですから......。

つまり、上のコードのボタンを押してから下のコードのボタンを押すと、最初のボタンが必ず最後のボタンを押す状態になるのです ...

もっとシンプルでいいんです、本当に。問題や困難はまったく感じない。

上のボタンは何ですか?

 
Vladimir Pastushak:
OnChartEvent()を使う場合、ボタンが押されたことをボタンの名前で判断し、上記の提案のように他の名前のボタンを押すことができますが、テスターではうまく いきません......。
名前とはどういう意味ですか?これはどうでしょう?押し売りではなく、イベントなんです。そして、状態はObjectGetInteger() で定義されます。
 
Dmitry Fedoseev:
ボタンが 押されたかどうかを知るために、ObjectGetInteger() を呼び出すのは、どのように管理しているのでしょうか?

このように

bool tmp=false。

ObjectGetInteger(0, "name",OBJPROP_STATE,0,tmp);
 
Dmitry Fedoseev:
名前からして何だろう?これはどうでしょう?クリックではなく、イベントです。そして、その状態はObjectGetInteger() で判断される。
冗談か本気か?
 
そこに自分なりのループがあるんですね。つまり、ボタンの状態を表す配列が必要です。我々は常にこのすべてを調べ、もしボタンの状態が 配列からの状態と一致しない場合、これが我々のイベントとなるのです。これで、ボタンと配列の両方が揃い、思い通りになりました。
 
Vladimir Pastushak:
冗談か本気か?
いや、本当は怖いんです。
 
Dmitry Fedoseev:
そこに自分のサイクルがあるんですね。つまり、ボタンの状態を表す配列が必要です。我々は常にこのすべてを調べ、もしボタンの状態が 配列からの状態と一致しない場合、これが我々のイベントとなるのです。これで、ボタンと配列の両方が揃い、思い通りになりました。
ループはなく、10個のボタンが描かれているだけです。ループも配列も構造体もない...。全てはプロシージャルのスタイルで...。
 
Dmitry Fedoseev:
いや、実はゾッとしているんです。
何の?
 
Vladimir Pastushak:
ループはなく、10個のボタンが描かれているだけ...。ループも配列も構造体もない...。すべて手続き上...。
はい?しかし、どこかでObjectGetInteger()を呼んで、ボタンが押されたかどうかを調べているのでは?
 
Dmitry Fedoseev:
名指しでどうなんでしょうか?それがどうした?クリックではなく、イベントです。そして、状態はObjectGetInteger() で定義されます。

グラフィカルオブジェクトのマウスクリックイベント

チャートイベント_オブジェクト_クリック

X座標

Y座標

イベントが発生したグラフィカルオブジェクトの名前