zoukankan      html  css  js  c++  java
  • delphi 触摸 手势

    delphi手势,左右滑动,

    控件的OnGesture事件写代码。

    放一个TGestureManager控件,设置控件的touch属性为TGestureManager控件。

    然后勾选控件的Touch>Gestures>Standard>里的手势类型,left,right,up,down等等,然后在OnGesture事件就可以捕捉到了。

    官方的手势图

    http://docwiki.embarcadero.com/RADStudio/Berlin/en/TStandardGesture_Enum

    FieldDescription

    GestureID

    The ID of the gesture that is emitted. ID is an integer value uniquely identifying the gesture.

    Location

    The current point on the control's surface. Location contains the X and Y coordinates of the last known point.

    Flags

    A set of TInteractiveGestureFlag options describing the state of the interactive gesture. Flags is only valid if the gesture is interactive.

    Angle

    The angle in radians (rad) in which either the finger or a gesturing device has moved relative to the screen coordinates.

    Angle is only set for the rotation gesture (TInteractiveGesture = Rotate):

    • Angle is negative if rotation is clockwise.
    • Angle is positive if rotation is counter-clockwise.

    Distance

    The distance in pixels from the current point, given by Location, and the previous point.

    Distance is only set for the zoom and two finger tap gestures (TInteractiveGesture = Zoom or TwoFingerTap). Distance is the distance between the two fingers or gesturing devices that are making the gesture.

    InertiaVector

    The inertia speed given by an X and Y pair. A positive X value means inertia toward the right of the screen, while a negative value means inertia to the left. A positive Y value means inertia toward the bottom of the screen, while a negative value means inertia to the top. InertiaVector is only valid if the event is interactive.

    TapLocation

    Specifies the coordinates of the "tap" and "press and tap" (igPressAndTap) gestures.

    procedure TForm1.GridPanelLayout1Gesture(Sender: TObject;
      const EventInfo: TGestureEventInfo; var Handled: Boolean);
    begin
      case EventInfo.GestureID of
        sgiRight://向右滑动
          begin
    
          end;
      end;
    end;
    case EventInfo.GestureID of
        sgiLeft:
          begin
            if TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount - 1] then
              TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex + 1];
            Handled := True;
          end;
    
        sgiRight:
          begin
            if TabControl1.ActiveTab <> TabControl1.Tabs[0] then
              TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex - 1];
            Handled := True;
          end;
      end;

    返回键

    procedure TTabbedwithNavigationForm.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
    begin
      if Key = vkHardwareBack then
      begin
        if (TabControl1.ActiveTab = TabItem1) and (TabControl2.ActiveTab = TabItem6) then
        begin
          TabControl2.Previous;
          Key := 0;
        end;
      end;

    touch与mouseup事件,先出发mouseUp事件,然后才触发ontouch事件。

  • 相关阅读:
    TDengine在上海电气储能智慧运维系统中的应用
    一文带你理解TDengine中的缓存技术
    taosAdapter正式发布:支持从OpenTSDB向TDengine无缝迁移
    TDengine 在中节能风力发电运维系统中的落地实践
    格创东智选择 TDengine,实现海量数据实时全生命周期管理
    TDengine 在水电厂畸变波形分析及故障预判系统中的应用
    使用wireshark抓包分析TCP三次握手
    K8s中 蓝绿部署、金丝雀发布、滚动更新汇总
    K8s运维锦囊,19个常见故障解决方法
    一次由 Kubernetes HostPort 引发的服务故障排错记实
  • 原文地址:https://www.cnblogs.com/cb168/p/5256943.html
Copyright © 2011-2022 走看看