除了通过 OnGesture 事件识别手势, 还可以直接个某个手势指定动作.

这需要用到: TActionList 或 TActionManager; 本例用了 TActionList.

操作步骤:

1、给窗体添加并关联 TGestureManager, 还要添加 TActionList;

2、给动作关联 Action:


3、给 Action 写代码.

代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, GestureMgr, ActnList;

type
  TForm1 = class(TForm)
    GestureManager1: TGestureManager;
    ActionList1: TActionList;
    Action1: TAction;
    Action2: TAction;
    procedure Action1Execute(Sender: TObject);
    procedure Action2Execute(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Action1Execute(Sender: TObject);
begin
  ShowMessage('Left');
end;

procedure TForm1.Action2Execute(Sender: TObject);
begin
  ShowMessage('Right');
end;

end.


窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 206
  ClientWidth = 339
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  Touch.GestureManager = GestureManager1
  PixelsPerInch = 96
  TextHeight = 13
  object GestureManager1: TGestureManager
    Left = 128
    Top = 88
    GestureData = <
      item
        Control = Owner
        Collection = <
          item
            Action = Action1
            GestureID = sgiLeft
          end
          item
            Action = Action2
            GestureID = sgiRight
          end>
      end>
  end
  object ActionList1: TActionList
    Left = 224
    Top = 136
    object Action1: TAction
      Caption = 'Action1'
      OnExecute = Action1Execute
    end
    object Action2: TAction
      Caption = 'Action2'
      OnExecute = Action2Execute
    end
  end
end

posted on 2009-10-21 11:20  万一  阅读(4410)  评论(0编辑  收藏  举报