4D v16.3

Is waiting mouse up

ホーム

 
4D v16.3
Is waiting mouse up

Is waiting mouse up 


 

Is waiting mouse up -> 戻り値 
引数   説明
戻り値  ブール in オブジェクトがmouse upイベントを待っている場合にはTrue、それ以外ならFalse

説明   

The Is waiting mouse up コマンドはカレントオブジェクトがクリックされて、かつマウスボタンがリリースされておらず、親ウィンドウにフォーカスが入っている場合にTrueを返します。そうでない場合、例えばマウスボタンがリリースされる前に親ウィンドウのフォーカスが外れてしまった場合などにはFalseを返します。

このコマンドはカレントオブジェクトのコンテキストにおいて呼び出される必要があります。これはピクチャーフィールドあるいは変数に対して使用可能なOn Mouse Up フォームイベントと共に使用される事を前提に設計されています。これを使用すれば、例えばユーザーがフォームオブジェクトピクチャー内で何かをクリックして移動を開始したものの、そのアクションが何らかの外部イベント、例えばALERTダイアログボックスなどで中断されたなどの場合をコードで管理する事ができるようになります。中断されてしまった場合、オブジェクトの内部状態としては永遠に発生しないmouse up eventを待ち続けることになってしまうため、無期限に停止してしまうことになります。この問題を避けるため、このコマンドが有効なコンテキストでのみ実行される事を保証するように、Is waiting mouse upコマンド内でのマウスの移動コードを保護する必要があります。

例題  

以下のコードを使用する事で、ピクチャーオブジェクト内のマウストラック機能を管理する事ができます:

  //ピクチャーオブジェクト用のオブジェクトメソッド
 C_LONGINT(vLtracking//トラックモードのフラグ管理
 Case of
    :(Form event=On Clicked)
       If(Is waiting mouse up//マウスボタンはまだリリースされていない
          vLtracking:=1 //トラックモード内にいる
  //... ここにトラック機能用の初期化コードを書く
       End if
    :(Form event=On Mouse Move)
       If(vLtracking=1) //トラックモード内にいる
          If(Not(Is waiting mouse up)) //mouse upは永遠に来ない場合
             vLtracking:=0 //トラックモードを中止
  //... ユーザートラックアクションを管理あるいはキャンセルするコードをここに書く
          Else //オブジェクトはmouse upをまだ待っている
  //... トラック用のコードをここに書く
          End if
       End if
    :(Form event=On Mouse Up//マウスボタンはリリースされた
  //... トラックアクションを完成させるコードをここに書く
       vLtracking:=0 //トラックモードを終了
 End case



参照 


Form event

 
プロパティ 

プロダクト: 4D
テーマ: フォームイベント
番号: 1422

 
履歴 

New
初出: 4D v16

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)