AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
Delphi2010 ジェスチャ(1) 2010/11/24
 
前回は、[Touch]カテゴリ内のタッチキーボード(TouchKeyboard;仮想キーボード・ソフトキーボード)について見てみました。今回は、ジェスチャについて見ていきます。ジェスチャとは、タッチディスプレイ等(マウスも可)を使った操作でイベントやアクションが起きる仕組みの事ですが、どういう操作があるのかって辺りでしょうか?
 
ジェスチャには2種類あって、1つは「標準ジェスチャ」でこれは操作それぞれ単機能なものを指すもので、もう1つは「対話型ジェスチャ」でこちらはWindows7対応・タッチディスプレイ専用のパン・ズーム・回転・2本指タップ・プレスアンドタップという組み合わせ的な機能のものです。ここではまず、標準ジェスチャについて見ていきます。
 
テスト28(フォルダ「028」)として新規作成します。
テストとしてパネルを配置します。いろんなコンポーネントでタッチ&ジェスチャに対応していますが、大きさが小さいと認識が難しくなると思います。そして、[Gestures]内のジェスチャマネージャ(GestureManager)を配置します。1つ目ですので Nameプロパティは「GestureManager1」となります。



 
パネル Panel1 を選択し、<オブジェクトインスペクタ>にて、Touchプロパティ内の GestureManagerプロパティ欄の右端の▼をクリックして「GestureManager1」にします。

 
そのすぐ下にある Gesturesプロパティ欄の右端の[…]をクリックして「ジェスチャの選択」画面を表示します。



 
又は、そのすぐ下にある Standardプロパティ欄の左端の[+]をクリックして中身を展開することでもOKです。

 
すると標準ジェスチャの一覧がチェック付きで表示されます。ここで、対応したい標準ジェスチャの項目にチェックを入れます。例えば、Left、Right、Up、Down、の4つにチェックを入れてみます。

 
そして、<オブジェクトインスペクタ>のイベント頁の、OnGestureイベント欄をダブルクリックしてイベントハンドラを記述します。

procedure TForm1.Panel1Gesture(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
var
 id : TStandardGesture ;
begin
 id := TStandardGesture(EventInfo.GestureID);
 with Panel1 do begin
  case id of
   sgLeft:  Caption := '左(←)';
   sgRight: Caption := '右(→)';
   sgUp:   Caption := '上(↑)';
   sgDown:  Caption := '下(↓)';
  end;
 end;
 Handled := True ;
end;
ヘルプに「GestureID」についての記載が無いので、これが実際に正しい書き方なのかは分かりませんが・・・。この「GestureID」は ShortInt型との事ですが、各ジェスチャのほうを ShortIntにキャストするとプログラムが見難くなるので、逆にしてます。
 
内容は単純です。パネル上で上下左右のフリックをすると、パネル上の文字をそれに応じて変更しているだけです。保存・コンパイル(再構築)・実行をしてみます。

パネル上を右方向へフリックすると


これはマウス操作でも同様に操作できます
 
という訳で、対応したい操作に対する標準ジェスチャを指定し、そのコーディングを行う事で、プログラムを作成する事が出来ます。標準ジェスチャには下記のものがあります(ヘルプ「列挙型 TStandardGesture」より)。
sgLeft1一筆で、左向きにさっと線を引きます。
sgRight2一筆で、右向きにさっと線を引きます。
sgUp3一筆で、上向きにさっと線を引きます。
sgDown4一筆で、下向きにさっと線を引きます。
sgUpLeft5一筆で、上向きに、それから直角に曲がって左向きに線を引きます。 両方の線の長さは同じにします。
sgUpRight6一筆で、上向きに、それから直角に曲がって右向きに線を引きます。 両方の線の長さは同じにします。
sgDownLeft7一筆で、下向きに、それから直角に曲がって左向きに線を引きます。 両方の線の長さは同じにします。
sgDownRight8一筆で、下向きに、それから直角に曲がって右向きに線を引きます。 両方の線の長さは同じにします。
sgLeftUp9一筆で、左向きに、それから直角に曲がって上向きに線を引きます。 両方の線の長さは同じにします。
sgLeftDown10一筆で、左向きに、それから直角に曲がって下向きに線を引きます。 両方の線の長さは同じにします。
sgRightUp11一筆で、右向きに、それから直角に曲がって上向きに線を引きます。 両方の線の長さは同じにします。
sgRightDown12一筆で、右向きに、それから直角に曲がって下向きに線を引きます。 両方の線の長さは同じにします。
sgUpDown13一筆で、上向きに、それから下向きに線を引きます。 両方の線は重ね合わせます。
sgDownUp14一筆で、下向きに、それから上向きに線を引きます。 両方の線は重ね合わせます。
sgLeftRight15一筆で、左向きに、それから右向きに線を引きます。 両方の線は重ね合わせます。
sgRightLeft16一筆で、右向きに、それから左向きに線を引きます。 両方の線は重ね合わせます。
sgUpLeftLong17一筆で、上向きに、それから直角に曲がって左向きに線を引きます。 左向きの線は、上向きの線の 2 倍から 4 倍の長さにします。
sgUpRightLong18一筆で、上向きに、それから直角に曲がって右向きに線を引きます。 右向きの線は、上向きの線の 2 倍から 4 倍の長さにします。
sgDownLeftLong19一筆で、下向きに、それから直角に曲がって左向きに線を引きます。 左向きの線は、上向きの線の 2 倍から 4 倍の長さにします。
sgDownRightLong20一筆で、下向きに、それから直角に曲がって右向きに線を引きます。 右向きの線は、下向きの線の 2 倍から 4 倍の長さにします。
sgScratchout213 回以上往復する線を引きます。
sgTriangle22上の頂点から始めて、一筆で三角形を描きます。
sgSquare23左上の角から始めて、一筆で四角形を描きます。
sgCheck24一筆で、右下方向に、それから右上方向に線を引きます。上向きの線は、下向きの線の 2 倍から 4 倍の長さにします。
sgCurlicue25一筆で、下から始めて右斜め上方向に渦巻きを描きます。
sgDoubleCurlicue26一筆で、下から始めて右斜め上方向に二重の渦巻きを描きます。
sgCircle27上から始めて、一筆で円を描きます。
sgDoubleCircle28上から始めて、一筆で円を 2 度描きます。
sgSemiCircleLeft29一筆で、右から左に水平方向の半円を描きます。
sgSemiCircleRight30一筆で、左から右に水平方向の半円を描きます。
sgChevronUp31一筆で、上向きに、それから鋭角に曲がって下向きに線を引きます。 両方の線の長さは同じにします。
sgChevronDown32一筆で、下向きに、それから鋭角に曲がって上向きに線を引きます。 両方の線の長さは同じにします。
sgChevronLeft33一筆で、左向きに、それから鋭角に曲がって右向きに線を引きます。 両方の線の長さは同じにします。
sgChevronRight34一筆で、右向きに、それから鋭角に曲がって左向きに線を引きます。 両方の線の長さは同じにします。
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/11/23
 2010/11/24
▼2010/11/25
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.