« NS/Basic Palmで実行ファイルに共有ライブラリを埋め込む | Main | iPAQ h2210の保守、修理 »

2005.11.22

NS Basic/PalmでWristPDAのボタン入力を判定

もう古いのでこっち参照。

NS Basic/PalmでWristPDAのボタン入力判定をやってみた。
全部GetKey()で値を返してくれたが、Rockerボタンがやっかい。
これは1度の入力につき、2回イベントが発生。それぞれ別の値を返してくる。
Rocker Upが46-->11、Rocker Downが47-->12といった感じだ。
1回目の46, 47はユニーク(固有)だが、2回目の11, 12はPage Up、Page Downと同じ値。
だから、46か47が来たら、その時点ではフラグを立てるだけでやり過ごし、11か12が来たら、フラグが立っているかどうかで、Rocker Up/Downか、Page Up/Downのどっちかと判定すればOK。

Rocker Up/Downの反応が鈍いのは、入力判定に2イベントループ分の時間がかかるからなのかと納得。

Asc()でIntegerに変換してから判定しているけど、Hexのまま判定したら、少しはレスポンスへの貢献があるだろうか。

'Startupでフラグ用のGlobalな変数を用意。
Sub Project_Startup()
Global RockerFlag as Integer
RockerFlag = 0
End Sub

'フォームのEventでボタン入力判定
Sub Form1003_Event()
If geteventtype() = nsbKeyOrButton Then
Select Case asc(getkey())
'Rocker Up2回目、もしくはPage Up
Case 11
If RockerFlag = 1 Then
Field1004.Text = "Rocker Up"
RockerFlag = 0
Else
Field1004.Text = "Page Up"
End If
'Rocker Down2回目、もしくはPage Down
Case 12
If RockerFlag = 1 Then
Field1004.Text = "Rocker Down"
RockerFlag = 0
Else
Field1004.Text = "Page Down"
End If
Case 46
'Rocker Up初回はフラグ立てるだけ
RockerFlag = 1
Case 47
'Rocker Down初回もフラグ立てるだけ
RockerFlag = 1
Case 48
'Rocker Enter
Field1004.Text = "Rocker Enter"
End Select
End If
End Sub
----
検索用: nsbasic

|

« NS/Basic Palmで実行ファイルに共有ライブラリを埋め込む | Main | iPAQ h2210の保守、修理 »