Palm Programmer's Laboratory

トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Palm OS Programmer's Companion Volume I/4-5

← 4 節に戻る ↑4 章トップへ 6 節に進む →


4-5 フィールド

 
フィールドオブジェクトは1行またはそれ以上のテキストを表示します。図 4.15 に示しているのは下線付きで左揃えの、データを含んだフィールドです。

図 4.15 フィールド

フィールドオブジェクトは以下の機能をサポートします。

  • プロポーショナルフォント(フィールド単位で1フォントのみ)
  • ドラッグによる選択
  • 複数行フィールドでのスクロール
  • カット、コピー、およびペースト
  • 左端、および右端揃え
  • タブストップ
  • 編集可能/不可能属性
  • フィールドの高さの拡張( 多くのテキストが入力されるとフィールドの高さを拡張 )
  • 下線付きテキスト(フィールドの各行に下線を表示)
  • 最大文字数制限(最大文字数に達っすると文字入力を停止)
  • 特殊キー( Graffiti および Graffiti 2 ストローク )によるカット、コピー、ペーストのサポート
  • ペンによるカーソルの移動( 文字と文字の間をペンでタップしてカーソル位置を指定 )
  • スクロールバー

フィールドオブジェクトは重ね打ち入力モード、水平スクロール、数値のフォーマット、および特殊キーでのページアップ、ページダウン、left word、right word、ホーム、エンド、left margin、right margin、バックスペースをサポートしていません。バージョン 3.5 未満の Palm OS では、フィールドオブジェクトは単語選択もサポートしていません。バージョン 3.5 以降では、単語をダブルタップすればその単語を選択し、トリプルタップをすることによって行全体を選択します。

訳注:left word、right word、left margin、right margin については
   意味が良くわからなかったのでひとまずそのままとしています。
NOTE
フィールドオブジェクトはラインフィード( 0x0A )は処理できますが、キャリッジリターン( 0x0D )は処理できません。PalmRez は Palm OS リソース内で見つけたキャリッジリターンを全てラインフィードに変換しますが、スタティックデータについてはなにもしません。

フィールドオブジェクトのイベントは FldHandleEvent で処理されます。表 4.13 に FldHandleEvent がどのように各種のイベントを扱うかの概要を示します。

表 4.13 フィールドのイベントフロー

ユーザー操作 生成されるイベント FldHandleEvent の応答
フィールドをペンで押下 penDownEvent と x & y 座標を EventType に設定 fldEnterEvent をイベントキューに追加
  フィールド ID の fldEnterEvent カーソル位置をペンの位置に合わせ、ペンが離されるまで追跡。ドラッグによる選択とスクロールをサポート。
    Palm OS 3.5 以降では、ダブルタップでその位置の単語を選択し、トリプルタップで行を選択。
ペンが離される penUpEvent と x & y 座標を EventType に設定 なにもしない。他のフィールドが選択されるか、そのフィールドを含むフォームがクローズされるまでフィールドは選択状態のまま。
選択フィールドに文字を入力 keyDownEvent と 文字コードを EventType に設定 文字をフィールドのテキスト文字列に追加
上矢印キーを押下 keyDownEvent カーソルを1行上に移動
下矢印キーを押下 keyDownEvent カーソルを1行下に移動。カーソルが最終行にあれば移動しない。
左矢印キーを押下 keyDownEvent カーソルを1文字分左に移動。左端に到達した場合は前の行の終端に移動。
右矢印キーを押下 keyDownEvent カーソルを1文字分右に移動。右端に到達した場合は次の行の先頭に移動。
カットコマンド keyDownEvent 選択文字列をテキストクリップボードに切り取り。
コピーコマンド keyDownEvent 選択文字列をテキストクリップボードにコピー。
ペーストコマンド keyDownEvent クリップボードのテキストをフィールドのカーソル位置に挿入。

 


← 4 節に戻る ↑4 章トップへ 6 節に進む →