首页 > 其他分享 >自已的一个小工具需要用到软键盘,就写成了个函数~

自已的一个小工具需要用到软键盘,就写成了个函数~

时间:2023-10-22 16:44:19浏览次数:29  
标签:25 用到 KeyMapping 自已 else 软键盘 btnKey col row

自已的一个小工具需要用到软键盘,就写成了个函数~看图

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, XPMan;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    XPManifest1: TXPManifest;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure CreateKeyboard(myParent: TwinControl);
    procedure btnKeyClick(Sender: TObject);
  private
    btnKey: array[0..25] of TButton;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnKeyClick(Sender: TObject);
var
  letter: string;
begin
  letter := LowerCase((Sender as TButton).Caption);
  if letter = 'space' then
    letter := ' ';
  Memo1.Lines.Text := Memo1.Lines.Text + letter;
end;

procedure TForm1.CreateKeyboard(myParent: TwinControl);  //创建软键盘
var
  i, row, col: Integer;
  KeyMapping: array[0..25] of string;
  btnKey: array[0..25] of TButton;
begin
  KeyMapping[0] := 'Q';
  KeyMapping[1] := 'W';
  KeyMapping[2] := 'E';
  KeyMapping[3] := 'R';
  KeyMapping[4] := 'T';
  KeyMapping[5] := 'Y';
  KeyMapping[6] := 'U';
  KeyMapping[7] := 'I';
  KeyMapping[8] := 'O';
  KeyMapping[9] := 'P';
  KeyMapping[10] := 'A';
  KeyMapping[11] := 'S';
  KeyMapping[12] := 'D';
  KeyMapping[13] := 'F';
  KeyMapping[14] := 'G';
  KeyMapping[15] := 'H';
  KeyMapping[16] := 'J';
  KeyMapping[17] := 'K';
  KeyMapping[18] := 'L';
  KeyMapping[19] := 'Z';
  KeyMapping[20] := 'X';
  KeyMapping[21] := 'C';
  KeyMapping[22] := 'V';
  KeyMapping[23] := 'B';
  KeyMapping[24] := 'N';
  KeyMapping[25] := 'SPACE';
  for i := 0 to 25 do
  begin
    btnKey[i] := TButton.Create(Self);
    btnKey[i].Parent := myParent;
    row := i div 10;
    col := i mod 10;
    if row = 0 then
      btnKey[i].Top := 7
    else if row = 1 then
      btnKey[i].Top := 40
    else if row = 2 then
      btnKey[i].Top := 73;
    if row = 0 then
      btnKey[i].Left := -8 + (col + 1) * 33
    else if row = 1 then
      btnKey[i].Left := 15 + (col + 1) * 33
    else if row = 2 then
      btnKey[i].Left := 35 + (col + 1) * 33
    else
      btnKey[i].Left := -8 + (col) * 30;
    btnKey[i].Caption := KeyMapping[i];
    btnKey[i].Height := 32;
    if i = 25 then
      btnKey[i].Width := 90
    else
      btnKey[i].Width := 32;
    btnKey[i].OnClick := btnKeyClick;   //按纽事件
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  CreateKeyboard(panel1);
end;

end.

 

标签:25,用到,KeyMapping,自已,else,软键盘,btnKey,col,row
From: https://www.cnblogs.com/WilliamLv/p/17780644.html

相关文章

  • 如何以编程方式关闭/隐藏Android软键盘?
    内容来自DOChttps://q.houxu6.top/?s=如何以编程方式关闭/隐藏Android软键盘?我在我的布局中有一个EditText和一个Button。在编辑字段中写入内容并点击Button后,我希望在触摸键盘外部时隐藏虚拟键盘。我认为这是一段简单的代码,但是我在哪里可以找到它的示例?为了澄清这个疯狂......
  • 2D物理引擎 Box2D for javascript Games 第四章 将力作用到刚体上
    2D物理引擎Box2DforjavascriptGames第四章将力作用到刚体上将力作用到刚体上Box2D是一个在力作用下的世界,它可以将力作用于刚体上,从而给我们一个更加真实的模拟。但是,如果你想要移动刚体,发射子弹,抛掷小鸟,驾驶汽车和当你在玩物理游戏时你看到的一切令人起劲的事情,那么你......
  • 10-15|sudo hwclock --systohc这个是什么,什么情况下会用到这个
    `sudohwclock--systohc`是一个命令,用于将系统时间同步到硬件时钟。下面详细解释一下这个命令:1.**`sudo`**:这个前缀表示以超级用户权限执行接下来的命令。因为更改硬件时钟通常需要管理员权限,所以通常需要使用`sudo`。2.**`hwclock`**:这是一个工具,用于访问和修改硬件时......
  • Spring Boot + EasyExcel 导入导出,好用到爆,可以扔掉 POI 了
    1、EasyExcelEasyExcel是阿里巴巴开源poi插件之一,主要解决了poi框架使用复杂,sax解析模式不容易操作,数据量大起来容易OOM,解决了POI并发造成的报错。主要解决方式:通过解压文件的方式加载,一行一行的加载,并且抛弃样式字体等不重要的数据,降低内存的占用。EasyExcel优势注解式自定义操作......
  • 小程序需要用到服务器吗
    小程序需要用到服务器吗我们碰到的一个常见的问题就是微信小程序需要服务器吗?其实,这主要是看小程序的具体应用。 1)如果是使用微信门店小程序、微信小店小程序,以及静态的小程序,那么是不需要购买域名和服务器。或者使用某些免费的第三方平台,也是不需要我们来购买域名和服务器的......
  • 小程序需要用到服务器吗?
    小程序需要用到服务器吗我们碰到的一个常见的问题就是微信小程序需要服务器吗?其实,这主要是看小程序的具体应用。 1)如果是使用微信门店小程序、微信小店小程序,以及静态的小程序,那么是不需要购买域名和服务器。或者使用某些免费的第三方平台,也是不需要我们来购买域名和服务器的......
  • 小程序需要用到服务器吗
    小程序需要用到服务器吗我们碰到的一个常见的问题就是微信小程序需要服务器吗?其实,这主要是看小程序的具体应用。1)如果是使用微信门店小程序、微信小店小程序,以及静态的小程序,那么是不需要购买域名和服务器。或者使用某些免费的第三方平台,也是不需要我们来购买域名和服务器的......
  • Web版Photoshop来了,用到了哪些前端技术?
    经过Adobe工程师多年来的努力,并与Chrome等浏览器供应商密切合作,通过WebAssembly+Emscripten、WebComponents+Lit、ServiceWorkers+Workbox和新的WebAPI的支持,终于在近期推出了Web版Photoshop(photoshop.adobe.com),这在实现高度复杂和图形密集型软件在浏览器中运......
  • 一些好玩但很少用到的小程序
    1、强制系统关机功能:让系统强制关机;ExitWindowsEx这个API可以关闭系统,但是请注意这个函数需要进程具有 SE_SHUTDOWN_NAME特权(13-18行),另外就像我们很多时候关机会提示关闭一些应用程序一样,不加 EWX_FORCE标志也会有交互式提示,如果想要强制关闭就加上标志 EWX_FORCE。1......
  • 爬虫的时候用到http代理ip,原因是什么?
    随着互联网的发展,越来越多的企业在业务上都需要用到http代理,那么爬虫的时候用到http代理ip,原因是什么?小编接下来就跟大家介绍一下:1.提升速率使用与目标服务器同地域的代理ip,更快速的请求响应回数据。2.效率提高切换不同ip,灵活的请求,提高爬取效率。3、更加安全使用的是代理服务器提......