第6回 Palmに動作を伝えよう 〜 イベントのお話 〜「1.Palmデバイスとイベント」

6−1 Palmデバイスとイベント

BASICの基礎的なコマンドもおおよそ紹介しましたので、今回からは、もう少し具体的な内容に移りたいと思います。
具体的になる分、一般的なBASICよりもNS Basic寄りになりますので、その点は予めご了承下さい。

さて、Palmを使う時、スタイラスや指で画面をタップしたり、ハードキーを押したりと、何らかの動作を与えます。
また、ジョグダイヤルを装備したデバイスでは、ダイヤルを回したり押したりします。
このように、何らかの動作を用いて Palm側に何かを伝えているわけですが、このような動作をプログラム側では「イベント」として捉えます。
「イベント」と言えば、今までにボタンオブジェクトをタップする「イベント」が登場していますので、初登場ではありませんが、今回は、様々なイベント類について説明します。

Palmデバイスには、次のような入力装置がついています
  • タッチスクリーン
  • ハードキーやソフトキー
  • ジョグダイヤル
このうち、ジョグダイヤルを除く2つの動作は、どれも何かを押すような動作に関連します。
例えば、スクリーン上のチェックボックスをチェックする動作も、スクロールバーを動かす動作も、基本的には「タップ」による動作によって引き起こされていますね。
このように、画面上に配置したオブジェクトやボタン類は、押すことでイベントが発生する訳ですが、ジョグダイヤルを回す動作も、下や上に「押す」と考えれば、それらも「押す」動作に無理矢理まとめてしまえますね。ということで、Palmデバイスでは「何か」を「押す」事でイベントが発生していると言えます。

では、一般的かつ、良く使われるイベントである「スクリーン(画面)のタップ」について説明しましょう。
一般的なオブジェクト、例えばボタン、ではイベント=タップでしたので、そのボタンにはコードを記述するウィンドウは1つしかありませんでした。しかし、複数のイベントを持った特殊はオブジェクトが存在します。
それが「スクリーン/フォーム」ですが、これは既に「After」や「Before」というイベントを第4回で紹介しました。
それらに加えて、スクリーンにはタップ動作について発生する「Special Event」があります。
Specialとは、なんだかゴージャスですが、これらのイベントは次の動作で発生します。
  • スクリーンにスタイラスが触れた時
  • スクリーンに触れたスタイラスが離れた時
  • ハードキーを押した時
  • ソフトキー(Graffitiエリアにあるボタン)を押した時
  • Graffiti入力された時
  • ジョグダイヤルが動かされた時
画面のイベントであるのに、ボタン類やジョグダイヤルまで?と思われるかもしれませんね。
そう、これらのすべてのイベントは、Formの[events]でチェックできます。ま、Formオブジェクト自身がプログラムの土台ですから、一般的なイベントがまとめて取得できるようになっていると理解しておきましょう。
では、簡単なサンプルで試してみます。

Formの[events]モジュールに、Beep と入れます。Beepはブザー音を発するコマンドなので、何らかのイベントがあった時に音が鳴ってわかります。

早速、実行してみましょう。
画面をタップしたり、ボタンをタップしたりすると、面白いくらい音がなります。
まず、画面をタップした場合は、ペンが触れた時と離れた時の2回鳴りますね。これは、スタイラスが触れた時と離れた時の2つのイベントが発生しているからです。
また、本体下部のハードキーでは、どのボタンも音が鳴りますが、音が鳴った後に、そのボタンに割り当てられた機能が起動しますね。 例えば、音が鳴った後に、スケジュールやアドレス帳が起動します。
究極(?)のボタンが電源ボタンですが、これも同じく音を鳴らしてから電源を切りますので、これもイベントとしてチェックできることになります。
一方、同じボタンでも、Graffitiエリアに印刷してあるソフトキーでも音が鳴りますが、ここでは印刷通りには鳴らないことに気が付きませんか?
日本語版のPalmデバイスを使っていると「変換」「確定」などの日本語用の表記がありますが、ここをタップしても音は鳴りません。したがって、このようなイベントはチェックできないことがわかります。

このように、1つのコマンドでいろいろなイベントがチェックできることがわかりましたね。
さらに、単にチェックできるだけでなく、ハードキーなどは割り当てられたアプリに切り替わってしまうことや、電源ボタンもイベントとして取れることがわかりました。
では、次はプログラミングの方を説明しましょう。


目次へ     次へ

第6回 Palmに動作を伝えよう 〜 イベントのお話 〜「1.Palmデバイスとイベント」