新しく発言する  EXIT  インデックスへ

マウスの操作5種類をまとめました


  マウスの操作5種類をまとめました 荒田浩二 2008/03/20 11:49:53 
マウスの操作5種類をまとめました  返事を書く  ノートメニュー
荒田浩二 <knrztrhoel> 2008/03/20 11:49:53
十進BASICの独自の拡張機能であるMOUSE POLLを利用して、よく使う次の5種類の操作をモジュールにまとめました。
 ・長押し(press)
 ・右クリック(right click)
 ・Wクリック(w click)
 ・左クリック(single click)
 ・ドラッグ(drag)

MOUSE POLLの「マウスの操作を待たない」という特徴をできる限り引き継ぐようにしました。
マウス操作と他の命令を並行的に処理できます。
グラフィックス画面内で上の5種類の操作を試してみて下さい。

DECLARE EXTERNAL SUB mouse.operation ! マウス操作
SET TEXT BACKGROUND "OPAQUE"
DIM tail_p(2,200) ! しっぽの長さ;200
SET POINT STYLE 2 ! ドラッグの軌跡;+
SET POINT COLOR 4 ! ドラッグの軌跡;赤
LET n=6 ! 操作の回数
FOR i=1 TO n
PLOT TEXT ,AT 0.1,0.95 ,USING "あと ># 回操作":STR$(n+1-i)
DO
PLOT TEXT ,AT 0.4,0.95 ,USING "TIME = <####.##":STR$(TIME) !マウス操作と並行処理可
CALL mouse.operation(action,clickx,clicky,pointerx,pointery) !マウス操作
!CALL tail(clickx,clicky,tail_p,4,3) ! ポインタのしっぽ;o,緑
!IF action=0.1 AND (clickx<>pointerx OR clicky<>pointery) THEN PLOT POINTS : pointerx,pointery !ドラッグの軌跡
LOOP UNTIL action>=1
SELECT CASE action
CASE 1 ! 長押し
PLOT TEXT ,AT clickx,clicky :"press"
CASE 2 ! 右クリック
PLOT TEXT ,AT clickx,clicky :"right click"
CASE 3 ! Wクリック
PLOT TEXT ,AT clickx,clicky :"w click"
CASE 4 ! 左クリック
PLOT TEXT ,AT clickx,clicky :"single click"
CASE 5 ! ドラッグ
PLOT TEXT ,AT clickx,clicky :"drag"
PLOT LINES : clickx,clicky ; pointerx,pointery
! PLOT TEXT ,AT pointerx,pointery :"release"
END SELECT
NEXT i
PLOT TEXT ,AT 0.1,0.95 : "プログラム終了 !!"
SUB tail(x9,y9,t(,),ps,pc) ! ポインタのしっぽ
ASK POINT STYLE aps
ASK POINT COLOR apc
LET tn=SIZE(t,2)
SET POINT STYLE ps
SET POINT COLOR 0
PLOT POINTS : t(1,1),t(2,1)
IF x9<>t(1,tn) OR y9<>t(2,tn) THEN
SET POINT COLOR pc
PLOT POINTS : x9,y9
END IF
FOR j=1 TO tn-1
LET t(1,j)=t(1,j+1)
LET t(2,j)=t(2,j+1)
NEXT j
LET t(1,tn)=x9
LET t(2,tn)=y9
SET POINT STYLE aps
SET POINT COLOR apc
END SUB
END
!<続く>
  !<続き> 荒田浩二 2008/03/20 11:51:29 
   └!マウスのイベント・ドリブンによる処理※左... 山中和義 2008/03/22 10:48:03 
    └ダブルクリックの判別が悩むところです。 荒田浩二 2008/03/25 18:33:39 

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。