文档章节

Delphi 2010 新增功能之: 软键盘、触摸键盘(TTouchKeyboard)

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 556
阅读 9
收藏 0
本例效果动画图(因不是触摸屏, 只能用鼠标测试一下):


代码文件:
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

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/10/15/1583781.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
故障排除经验——笔记本电脑重启后键盘失灵的解决办法(亲测可用)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hpdlzu80100/article/details/83510538 问题描述: 下午,卸载了360软件(安全卫士、软件管家、360安全浏览器...

预见未来to50
2018/10/29
0
0
VMware卸载后键盘失灵的解决方案

说起这VMware(D版)安装就来气.本来公司电脑就很差.就一个C盘,安装的时候说D驱动器不存在,行.搞个subst命令来弄一个,卸载时.还得弄一个. 当我卸载后重启!悲剧发生了~在输入登陆密码时键盘死活...

晨曦之光
2012/06/05
716
0
Android安全输入设计与思考

随着移动支付的快速普及,如何保障用户信息安全这个问题变得越来越重要。 本文对市面上的Android安全键盘进行了总结,详细分析了为什么采用安全键盘,怎么样实现安全键盘等问题。以及各个产品...

老鹰a
2018/06/29
0
0
Android中关于键盘的操作

一、打开输入法窗口: InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUTMETHODSERVICE); // 接受软键盘输入的编辑文本或其它视图 imm.showSoft......

董家二少
2014/03/28
0
0
Android解析WindowManager(二)Window的属性

1.概述 上一篇文章中我们讲过了Window、WindowManager和WMS之间的关系,WMS是Window的最终管理者,Window好比是员工,WMS是老板,为了方便老板管理员工则需要定义一些“协议”,这些“协议”...

刘望舒
2017/10/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

解决各浏览器向url中传中问参数的问题

https://www.cnblogs.com/godtrue/p/4333262.html 后台的处理代码 public static String getUrlnewName( String oldName) {String newName = "";try {String agent = inv.get......

踏破铁鞋无觅处
22分钟前
1
0
微信支付携带证书请求

package utils.wechat; import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.security.KeyStore; import javax.net.ssl.SSLContext;......

猿神出窍
29分钟前
2
0
1093 - You can't specify target table 'xxx' for update in FROM clause, Time: 0.002000s

1093 - You can't specify target table 'xxx' for update in FROM clause, Time: 0.002000s 根据结果集在b_order_copy1 表中删除 DELETE FROM b_order_copy1 WHERE Id in ( SELECT Id FRO......

lwenhao
30分钟前
1
0
JavaScriptCore全面解析

本文由云+社区发表 作者:殷源,专注移动客户端开发,微软Imagine Cup中国区特等奖获得者 JavaScript越来越多地出现在我们客户端开发的视野中,从ReactNative到JSpatch,JavaScript与客户端相...

腾讯云加社区
34分钟前
1
0
Jmeter参数的AES加密使用

在Jmeter日常实践中,大家应该都遇到过接口传参需要加密的情况。以登陆为例,用户名和密码一般都需要进行加密传输,在服务端再进行解密,这样安全系数会更高,但在使用jmeter进行接口测试的时...

程序猿拿Q
45分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部