文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 556
阅读 6
收藏 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
深圳
程序员
Adnroid正日臻完善

Android SDK 1.5的preview发布以后,最近这几天相关的消息非常多,William觉得有必要在这里整理一下,看一看Android 1.5的改进,当然今天主要是从用户的角度出发,关于API变化相关的会在后续...

老枪
2009/04/19
409
1
Android安全输入设计与思考

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

老鹰a
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
VMware卸载后键盘失灵的解决方案

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

晨曦之光
2012/06/05
703
0

没有更多内容

加载失败,请刷新页面

加载更多

精通Spring Boot——第十二篇:分页查询功能的实现

本文将介绍如何实现分页查询功能,推荐使用github的pagehelper插件实现(事实上大家基本都是这么干的),但本文的实现方式和大多数不同,废话少说,现在就带着大家看看区别在哪里。 先看pom...

developlee的潇洒人生
6分钟前
0
0
平淡的秋招之路

1. 概述 在八月中旬之前,我还没有秋招这个概念,认为找工作就是通过学校举办的招聘会。后来慢慢的了解到,由于学校实力的问题,许多好的公司只会去门当户对的学校进行招聘。我们学校只是一个...

firepation
9分钟前
0
0
设置布局中的子控件不可用

RelativeLayout R2 = findViewById(R.id.act_menu_level2_rl); //设置当前R2中的子控件不可用 int childCount = R2.getChildCount(); ......

lanyu96
20分钟前
0
0
分布式系统中处理参数配置的 4 种方案

一个系统中包含有各种各样的配置信息,如一个日志文件需要配置以下几个信息。 日志文件生成主目录 日志文件名称,不同的日志级别对应不同的文件 当前日志级别 还有其他各种业务参数、系统参数...

Java技术栈
21分钟前
1
0
MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码

MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码 先来张在路上…… 铛铛铛……项目源码下载地址:http://files.cnblogs.com/ontheroad_lee/MongoDBDemo.rar 此项目是用M...

Airship
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部