{

作者: han

日期: 2006.06.02

}

unit softkey;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, RxGIF, ExtCtrls;

type

Tkeyfrm = class(TForm)

img0: TImage;

img5: TImage;

img4: TImage;

img3: TImage;

img8: TImage;

img9: TImage;

img7: TImage;

img2: TImage;

img1: TImage;

img6: TImage;

imgtg: TImage;

imgyc: TImage;

procedure WMActivate(var Message: TMessage); message WM_ACTIVATE;

procedure imgtgClick(Sender: TObject);

procedure imgycClick(Sender: TObject);

procedure OnNumClick(Sender: TObject);

private

{ Private declarations }

procedure Sendkeys(Hz: longint; state: longint=0);

public

{ Public declarations }

HActWin,Hself: Longint;

end;

var

keyfrm: Tkeyfrm;

implementation

{$R *.dfm}

{ Tkeyfrm }

{-------------------------------------------------------------------------------

过程名: Tkeyfrm.Sendkeys

参数: Hz: Longint; State: Longint=0

返回值: 无

说明: 发送键盘消息函数

-------------------------------------------------------------------------------}

procedure Tkeyfrm.Sendkeys(Hz: Longint; State: Longint=0);

var

FocusHld,WindowHld: hwnd;

ThreadId: dword;

begin

WindowHld := GetForegroundWindow;

ThreadId := GetWindowThreadProcessId(WindowHld,nil);

AttachThreadInput(GetCurrentThreadId,ThreadId,True);

FocusHld := GetFocus;

if FocusHld = 0 then Exit;

PostMessage(FocusHld,WM_KEYDOWN,$+Hz,0);

end;

{-------------------------------------------------------------------------------

过程名: Tkeyfrm.OnNumClick

参数: Sender: TObject

返回值: 无

说明: 键盘消息

-------------------------------------------------------------------------------}

procedure Tkeyfrm.OnNumClick(Sender: TObject);

var

tmp: string;

i: Integer;

begin

tmp:= Copy(TImage(Sender).Name,Length(TImage(Sender).Name),1);

i:= StrToInt(tmp);

SetActiveWindow(HActWin);

case i of

0: Sendkeys(48);

1: Sendkeys(49);

2: Sendkeys(50);

3: Sendkeys(51);

4: Sendkeys(52);

5: Sendkeys(53);

6: Sendkeys(54);

7: Sendkeys(55);

8: Sendkeys(56);

9: Sendkeys(57);

end;

end;

{-------------------------------------------------------------------------------

过程名: Tkeyfrm.WMActivate

参数: var Message: TMessage

返回值: 无

说明: 消息回调函数

-------------------------------------------------------------------------------}

procedure Tkeyfrm.WMActivate(var Message: TMessage);

begin

if Message.wParam = WA_CLICKACTIVE then

begin

if (HActWin <> message.lParam) and (message.lParam <> Hself) then

HActWin := message.lParam;

end;

end;

procedure Tkeyfrm.imgtgClick(Sender: TObject);

begin

SetActiveWindow(HActWin);

Sendkeys(8);

end;

procedure Tkeyfrm.imgycClick(Sender: TObject);

begin

Self.Hide;

end;

end.

Delphi制作软键盘的更多相关文章

  1. Android学习笔记_点九绘图与软键盘和事件传递

    最近项目里遇到的几个小问题,以前只是用吗没有深入看过,现在总结到一起,防止以后这种小问题占用太多时间.还是通过网上别人总结的很多博客学习了,挑选出最易懂明了的. 还有leader很小的问题都不放过,亲 ...

  2. 微信浏览器软键盘弹出与页面resize的问题

    使用微信打开网页,弹出软键盘时遇到的兼容问题 过去开发中遇到过很多这种情况,页面底部需要固定定位一个按钮,广告栏或者菜单栏,页面中有表单项需要填写,在打开手机虚拟键盘的时候,底部固定定位的元素会处在软 ...

  3. 基于jQuery的软键盘

    基于jQuery的软键盘   前些天写了一个基于基于jQuery的数字键盘,今天给大家带来一个基于jQuery的全字母键盘插件(支持全字母大小写切换,数字输入,退格清除,关闭功能,可调整大小和键盘位置 ...

  4. Android中点击隐藏软键盘最佳方法——Android开发之路4

    Android中点击隐藏软键盘最佳方法 实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸EditText以外的其他任何区域,软键盘被隐藏: 1.重写dispatchTouchEve ...

  5. Android之弹出/隐藏系统软键盘

    Android弹出/隐藏系统软键盘的代码如下: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT ...

  6. EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听

    软键盘显示和隐藏的监听: 注: mReplayRelativeLayout是EditText的父布局 //监听软键盘是否显示或隐藏 mReplayRelativeLayout.getViewTreeO ...

  7. Android -- 软键盘

    1. 应用启动后,自动打开软键盘 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD ...

  8. form表单提交和ajax表单提交,关于移动端如何通过软键盘上的【搜索】和【前进】进行提交操作

    [文章来源]由于自己对于form研究甚少,所以一直用的都是AJAX进行提交,这次后台提出要用form提交,顺便深入研究一下:之前在做表单的时候,发现input可以通过设置不同的type属性,调用不同的 ...

  9. iOS 点击TextField不弹出软键盘的解决方案

    开发中遇到: 在模拟器里面,textfield可以通过电脑键盘输入,可是怎么也不会自动弹出模拟器软键盘 解决方案: 切换一下键盘,command+shift+k,Xcode6.3 中只能是一种输入源

随机推荐

  1. bzoj1855: [Scoi2010]股票交易 单调队列优化dp ||HDU 3401

    这道题就是典型的单调队列优化dp了 很明显状态转移的方式有三种 1.前一天不买不卖: dp[i][j]=max(dp[i-1][j],dp[i][j]) 2.前i-W-1天买进一些股: dp[i][j ...

  2. 【BZOJ】1827: [Usaco2010 Mar]gather 奶牛大集会

    [算法]树型DP||树的重心(贪心) [题解] 两遍DFS,第一次得到所有节点子树的路径和,第二次给出除了该子树外其它部分的路径和,时时计算答案. long long!!! #include<c ...

  3. Docker原理 -- namespace与CGroup

    命名空间 PID(Process ID) 进程隔离 NET(Network) 管理网络隔离 IPC(InterProcess Communication) 管理跨进程通信的访问 MNT(Mount) ...

  4. bzoj 1066 最大流

    将每个石柱拆成两个点,分别是进入的和出去的,两个点之间连石柱的高度 然后每个出去的点连别的石柱的进去的点, 源点连所有蜥蜴所在柱子,每个能跳出去的连汇点,然后最大流就行了 /************* ...

  5. 【转】vs2015一键卸载干净

    插件是国外的一位同行写的,偶然在网上发现感觉挺好用,分享一下. 第二步.下载工具并解压 网盘下载地址:https://pan.baidu.com/s/1eSHRYxW 也可以在Github上下载最新版 ...

  6. [Leetcode Week11]Kth Largest Element in an Array

    Kth Largest Element in an Array 题解 题目来源:https://leetcode.com/problems/kth-largest-element-in-an-arra ...

  7. maven自动建立目录骨架

    maven提供archetype插件,用于创建符合maven规定的目录骨架. 方式一: 命令行执行mvn archetype:generate,在回显中依次写入如下参数: 执行完成会自动的生成响应的标 ...

  8. HTML-坦克大战-完成子弹连发功能(三)

    如题,完成子弹连发功能,上一篇博客遗留的问题,不能够连发,且一直按J键则第一颗子弹会消失:那是因为定义的子弹变量只是一个变量,现在定义成一个数组:在之前的代码上修改如下: <!DOCTYPE h ...

  9. js中如何对时间进行设置

    js中如何对时间进行设置 Js获取当前日期时间及其它操作var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getF ...

  10. 【C++】重载

    参考:黄邦勇帅 1.操作符重载函数作为类的成员和友元或者独立于类的区别: 当操作符重载函数作为类的成员函数时,操作符重载函数的参数会比作为友元或者独立于类的操作符重载函数少一个参数,因为操作符重载类成 ...