本例效果动画图(因不是触摸屏, 只能用鼠标测试一下):
代码文件:
窗体文件:
代码文件:
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