


 
 
 
 
 
 
 |
Delphi2010 タッチキーボード 2010/11/23 |
プログラムで何もせずとも、タッチパネルでタップ(左クリック)・ダブルタップ(左ダブルクリック)は有効となります。ですので左クリックのドラッグにもそのまま対応します。下方向へのフリック(下へドラッグ)はキーボードの[PageUp]、上方向へのフリック(上へドラッグ)は[PageDown]にそのまま対応するようですし、ズームのジェスチャはマウスホイールの回転にもそのまま適用されている感じです。という訳で、マルチタッチ/タッチジェスチャを駆使しないようなアプリケーションであれば、何もせずともそのまま動作する感じではあります。
但し、タッチパネルでのダブルタッチ(ダブルクリック)は、やっぱりやりにくいと感じてしまいますし、左右方向へのフリックや各種ジェスチャもしっかり組み込んで、直感的・簡単・便利で様々な機能が実装できると、色々と面白いのではないかと思われます。
それでは、Delphi2010での機能を見ていきます。
まずは、[Touch]カテゴリ内のタッチキーボード(TouchKeyboard;仮想キーボード)です。前回のテスト27を開いて、配置します。1つ目ですので Nameプロパティは「TouchKeyboard1」となります。このタッチキーボードの大きさは、最低 550×180ドットとなっていて、これより小さくは出来ません。大きくする事は出来ます。

↓

このまま保存・コンパイル(再構築)・実行をします。すると、別段コーディングせずともこのタッチキーボードでキーをタッチすることにより文字入力する事が出来ます。但し、通常のキーボードで同時押しをするような Fn・Shift・Ctrl・Altキーは、2つのキーをタッチするのではなく、タッチして切り替えるようになっています。
それでは<オブジェクトインスペクタ>をみていきます。
Alignプロパティは恒例のように、上下左右・残り領域全体に合わせて一杯一杯になるよう自動的にリサイズされるようになります。「alNone」(デフォルト)にしておけば配置した位置・サイズのままとなります。タッチキーボードの大きさは、操作する人によって明らかに異なってくると思います。ペンでタッチする人、指でタッチする人、タッチパネルを所持していない人はマウスでクリック、ですが、そうなるとキーボードの大きさは利用者によって変更出来ないと使いにくいでしょう。下手をすれば無用の長物と化します。ですので、フォームをリサイズ可能(フォームのBorderStyleプロパティをデフォルトの「bsSizeable」状態のまま)にして、このAlignプロパティを指定し大きさを変更できるようにしておく事が良いと思われます。
Layoutプロパティは、キーボードの種類を指定します。デフォルトの「Standard」の場合は上記のようになりますが、「NumPad」にしてテンキー状態にする事が出来ます。この場合のタッチキーボードの大きさは、最低 180×150ドットとなります。
DrawingStyleプロパティは、キートップを除くキーボードの色(背景色)の指定方法を指示します。デフォルトは「dsNormal」となっており、この場合は Colorプロパティで色を指定します。これを「dsGradient」に指定した場合には、GradientStartプロパティ、及び、GradientEndプロパティによりグラデーション色を指定する事が出来ます。

「dsGradient」にして GradientStartに赤色を、
GradientEndに青色を指定した場合
KeyCaptionsプロパティは、キーボードの特殊キーの文字を変更する事が出来ます。ここには、「Backspace」「Tab」「Del」「Caps」「Enter」「LeftShift」「RightShift」「LeftCtrl」「LeftAlt」「RightAlt」「RightCtrl」があります。狭いキーに長い文字を指定しても表示されませんので、その辺りは適当に…。

文字を割り当ててみた例
RepeatDelayプロパティは、キーをタッチしたまま「押しっ放し」状態を「キーリピート」として開始するまでの時間をミリ秒で指定します。デフォルトは「300」です。
RepeatRateプロパティは、キーリピートの頻度をミリ秒で指定します。デフォルトは「50」です。この辺りは、キーリピートをして欲しい場合、して欲しくない場合、などもあると思いますが、便宜に応じて指定して下さい。気にしない場合はデフォルトのままでよいと思います。
こんな感じでしょうか。
但し、あまり素早くタッチ&認識をするのは難しいようなので、その辺りは、キーをタッチし、その文字を明確に表示するようにして、入力ミスがあってもすぐに修正できるような画面レイアウトを行うようにしたほうがいいかもしれません。
なお、このタッチキーボードでなくても、WindowsVista/7の標準機能として搭載されている仮想キーボードも文字入力のシーンでは利用出来ますから、逆に、このタッチキーボードを明確に利用する意味というのを考える必要があるかもしれません。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/11/22
2010/11/23
▼2010/11/24
シェアウェア
Script!World
データベース
|