Metropolis UI アプリケーションでのジェスチャ サポート
Metropolis UI アプリケーションの開発 への移動
VCL および FireMonkey は、Metropolis UI アプリケーションにおいて、次のジェスチャをサポートしています::
- 34 個の標準ジェスチャ - 「列挙型 TStandardGesture TStandardGesture」を参照してください。
- 5 個のインタラクティブ ジェスチャ - Vcl.Controls.TInteractiveGesture または FMX.Types.TInteractiveGesture を参照。
カスタム ジェスチャは、Metropolis UI アプリケーションではサポートされていません。
FireMonkey でのジェスチャ サポートは、以下のような 2 つの異なる Windows API で提供されています。
- 標準(シングルタッチ)ジェスチャ用の RealTimeStylus API
- 対話型(マルチタッチ)ジェスチャ用の Windows Touch API
Windows 8 の対話型ジェスチャのサポート
Windows 8 で Metropolis UI アプリケーションを実行する場合は、以下のように、Windows 8 対話型ジェスチャの大半がサポートされています。
Windows 8 ジェスチャ | FireMonkey および VCL でのサポート |
---|---|
タップ |
クリックとしてサポート、Windows 8 で変換 |
プレス アンド ホールド |
サポートされていません |
スライド |
サポートされていません * |
スワイプ |
サポートされていません * |
ターン |
回転としてサポート |
ピンチ |
ズームとしてサポート(EventInfo.Distance 値が減少) |
ストレッチ |
ズームとしてサポート(EventInfo.Distance 値が増加) |
- スライド ジェスチャとスワイプ ジェスチャは、FireMonkey または VCL のパン ジェスチャを使ってシミュレートできます(パン動作の位置と方向を追跡します)。
サポートされている対話型ジェスチャについては、以下で説明しています。
同等の対話型ジェスチャの詳細については、http://msdn.microsoft.com/en-us/library/windows/apps/hh761498.aspx#input_modes を参照してください。
Windows 8 でのジェスチャの処理
Windows 8 では、RealTimeStylus がウィンドウに対して有効になっていると、ジェスチャはすべて Microsoft Windows 8 の RealTimeStylus API を通じて送られ、Windows Touch API はイベントをまったく通知しません。
この問題に対処するために、RealTimeStylus API を無効にできるグローバル フラグが FireMonkey に追加されました。 RealTimeStylus API が無効になると、FireMonkey では標準ジェスチャが検出されません。 その代わり、Windows Touch API からのジェスチャ イベントが、OnGesture イベントのハンドラを通じて個別に通知されます。
これらのイベントを解釈して、ユーザーに行われたジェスチャを決定できます。 Windows Touch ジェスチャは複数のイベントとして通知され、その始まりは TGestureEventInfo.Flag に gfBegin が設定されているイベントで、終わりは gfEnd が設定されているイベントです。 詳細は、「FMX.Types.TInteractiveGestureFlag」を参照してください。
Windows Touch イベントの通知を可能し、対話型ジェスチャを可能にするには、メイン プログラム ファイルの冒頭に以下のコードを追加しなければなりません。
TPlatformServices.Current.GlobalFlags.Add(GlobalDisableStylusGestures, True);
また、FMX.Platform と FMX.Consts を uses
句または #include
文に追加することも必要です。
この回避策は Windows 7 では必要なく、Windows 8 の最終リリースでも必要ない可能性があります。