zoukankan      html  css  js  c++  java
  • Delphi 2010 新增功能之: 软键盘、触摸键盘(TTouchKeyboard)

    本例效果动画图(因不是触摸屏, 只能用鼠标测试一下):


    代码文件:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Keyboard, TeCanvas;
    
    type
      TForm1 = class(TForm)
        TouchKeyboard1: TTouchKeyboard;
        Edit1: TEdit;
        Memo1: TMemo;
        CheckBox1: TCheckBox;
        CheckBox2: TCheckBox;
        CheckBox3: TCheckBox;
        ButtonColor1: TButtonColor;
        ButtonColor2: TButtonColor;
        procedure FormCreate(Sender: TObject);
        procedure CheckBox1Click(Sender: TObject);
        procedure CheckBox2Click(Sender: TObject);
        procedure CheckBox3Click(Sender: TObject);
        procedure ButtonColor1Click(Sender: TObject);
        procedure ButtonColor2Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    //是否要背景
    procedure TForm1.CheckBox1Click(Sender: TObject);
    begin
      case CheckBox1.Checked of
        True: TouchKeyboard1.DrawingStyle := TCustomTouchKeyboard.TDrawingStyle.dsGradient;
        False: TouchKeyboard1.DrawingStyle := TCustomTouchKeyboard.TDrawingStyle.dsNormal;
      end; {注意 TDrawingStyle 类型是定义在 TCustomTouchKeyboard 内部的}
    
      case CheckBox1.Checked of
        True: CheckBox1.Caption := 'DrawingStyle := dsGradient';
        False: CheckBox1.Caption := 'DrawingStyle := dsNormal';
      end;
    end;
    
    //背景过渡色 - 起始色
    procedure TForm1.ButtonColor1Click(Sender: TObject);
    begin
      TouchKeyboard1.GradientStart := TButtonColor(Sender).SymbolColor;
    end;
    
    //背景过渡色 - 终止色
    procedure TForm1.ButtonColor2Click(Sender: TObject);
    begin
      TouchKeyboard1.GradientEnd := TButtonColor(Sender).SymbolColor;
    end;
    
    //大小键盘切换
    procedure TForm1.CheckBox2Click(Sender: TObject);
    begin
      case CheckBox2.Checked of
        True: begin
          TouchKeyboard1.Layout := 'NumPad';
          TouchKeyboard1.Width := 180;
          TouchKeyboard1.Height := 150;
          CheckBox2.Caption := 'Layout := NumPad';
        end;
        False: begin
          TouchKeyboard1.Layout := 'Standard';
          TouchKeyboard1.Width := 550;
          TouchKeyboard1.Height := 180;
          CheckBox2.Caption := 'Layout := Standard';
        end; {注意: 这里的 Layout 属性是个字符串}
      end;
    end;
    
    //更换键名显示, 这在设计时通过 KeyCaptions 属性调整更方便
    procedure TForm1.CheckBox3Click(Sender: TObject);
    begin
      case CheckBox3.Checked of
        True: begin
          TouchKeyboard1.CaptionOverrides.SetCaption('Esc', '退出');
          TouchKeyboard1.CaptionOverrides.SetCaption('Backspace', '退格');
          TouchKeyboard1.CaptionOverrides.SetCaption('Del', '删除');
          TouchKeyboard1.CaptionOverrides.SetCaption('Enter', '回车');
          {Esc Backspace Tab Del Caps Enter LeftShift RightShift LeftCtrl LeftAlt RightAlt RightCtrl}
        end;
        False: TouchKeyboard1.CaptionOverrides.Clear;
      end;
      TouchKeyboard1.Redraw; {重绘}
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Memo1.Font.Color := clBlue;
      Memo1.Font.Size := 12;
      Memo1.ScrollBars := ssBoth;
    
      Edit1.Font.Color := clRed;
      Edit1.Font.Size := 12;
    
      CheckBox1.Caption := '背景色';
      CheckBox2.Caption := '大小键盘切换';
      CheckBox3.Caption := '功能键重命名';
    end;
    
    end.
    

    窗体文件:
    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 336
      ClientWidth = 566
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
      object TouchKeyboard1: TTouchKeyboard
        Left = 8
        Top = 148
        Width = 550
        Height = 180
        GradientEnd = clSilver
        GradientStart = clGray
        Layout = 'Standard'
      end
      object Memo1: TMemo
        Left = 8
        Top = 43
        Width = 297
        Height = 99
        Lines.Strings = (
          'Memo1')
        TabOrder = 1
      end
      object Edit1: TEdit
        Left = 8
        Top = 8
        Width = 297
        Height = 21
        TabOrder = 2
        Text = 'Edit1'
      end
      object ButtonColor1: TButtonColor
        Left = 327
        Top = 43
        Width = 102
        Caption = 'ButtonColor1'
        TabOrder = 3
        OnClick = ButtonColor1Click
      end
      object ButtonColor2: TButtonColor
        Left = 448
        Top = 43
        Width = 102
        Caption = 'ButtonColor2'
        TabOrder = 4
        OnClick = ButtonColor2Click
      end
      object CheckBox1: TCheckBox
        Left = 327
        Top = 10
        Width = 223
        Height = 17
        Caption = 'CheckBox1'
        TabOrder = 5
        OnClick = CheckBox1Click
      end
      object CheckBox2: TCheckBox
        Left = 327
        Top = 88
        Width = 194
        Height = 17
        Caption = 'CheckBox2'
        TabOrder = 6
        OnClick = CheckBox2Click
      end
      object CheckBox3: TCheckBox
        Left = 327
        Top = 111
        Width = 194
        Height = 17
        Caption = 'CheckBox3'
        TabOrder = 7
        OnClick = CheckBox3Click
      end
    end
    
  • 相关阅读:
    CSU 1598 最长公共前缀 (简单KMP或者暴力)
    CSU
    HDU 1711 Number Sequence (KMP简单题)
    HDU 1142 A Walk Through the Forest(最短路+记忆化搜索)
    HDU 1116 Play on Words(欧拉回路+并查集)
    POJ 1384 Intervals (区间差分约束,根据不等式建图,然后跑spfa)
    HDU 1165 Eddy's research II(给出递归公式,然后找规律)
    使用kvm虚拟出Centos6.5系统相关步骤
    netstat命令
    Centos6.5安装和使用docker
  • 原文地址:https://www.cnblogs.com/del/p/1583781.html
Copyright © 2011-2022 走看看