Delphi制作软键盘
{
作者: 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制作软键盘的更多相关文章
- Android学习笔记_点九绘图与软键盘和事件传递
最近项目里遇到的几个小问题,以前只是用吗没有深入看过,现在总结到一起,防止以后这种小问题占用太多时间.还是通过网上别人总结的很多博客学习了,挑选出最易懂明了的. 还有leader很小的问题都不放过,亲 ...
- 微信浏览器软键盘弹出与页面resize的问题
使用微信打开网页,弹出软键盘时遇到的兼容问题 过去开发中遇到过很多这种情况,页面底部需要固定定位一个按钮,广告栏或者菜单栏,页面中有表单项需要填写,在打开手机虚拟键盘的时候,底部固定定位的元素会处在软 ...
- 基于jQuery的软键盘
基于jQuery的软键盘 前些天写了一个基于基于jQuery的数字键盘,今天给大家带来一个基于jQuery的全字母键盘插件(支持全字母大小写切换,数字输入,退格清除,关闭功能,可调整大小和键盘位置 ...
- Android中点击隐藏软键盘最佳方法——Android开发之路4
Android中点击隐藏软键盘最佳方法 实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸EditText以外的其他任何区域,软键盘被隐藏: 1.重写dispatchTouchEve ...
- Android之弹出/隐藏系统软键盘
Android弹出/隐藏系统软键盘的代码如下: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT ...
- EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听
软键盘显示和隐藏的监听: 注: mReplayRelativeLayout是EditText的父布局 //监听软键盘是否显示或隐藏 mReplayRelativeLayout.getViewTreeO ...
- Android -- 软键盘
1. 应用启动后,自动打开软键盘 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD ...
- form表单提交和ajax表单提交,关于移动端如何通过软键盘上的【搜索】和【前进】进行提交操作
[文章来源]由于自己对于form研究甚少,所以一直用的都是AJAX进行提交,这次后台提出要用form提交,顺便深入研究一下:之前在做表单的时候,发现input可以通过设置不同的type属性,调用不同的 ...
- iOS 点击TextField不弹出软键盘的解决方案
开发中遇到: 在模拟器里面,textfield可以通过电脑键盘输入,可是怎么也不会自动弹出模拟器软键盘 解决方案: 切换一下键盘,command+shift+k,Xcode6.3 中只能是一种输入源
随机推荐
- 【洛谷 P1645】 序列 (差分约束)
题目链接 差分约束. 设\(s[i]\)表示前\(i\)个位置有多少个数,那么对于一个限制条件\((L,R,C)\),显然有 \[s[R]-s[L-1]>=C\] 于是连一条\(L-1\)到\( ...
- 第一个java的小东西
第一次自己写的一个java的小东西,毕竟自己第一次写的,其中可谓是历经艰难,最后总结下来就是java实在是不适合写界面化的东西代码量比较大,这还不是最关键的,最关键的是控件的位置实在是太难控制了. 这 ...
- bzoj 2324 ZJOI 营救皮卡丘 费用流
题的大概意思就是给定一个无向图,边有权值,现在你有k个人在0点,要求走到n点,且满足 1:人们可以分头行动,可以停在某一点不走了 2:当你走到x时,前x-1个点必须全部走过(不同的人走过也行,即分两路 ...
- 【Python实例一】使用minidom读取xml文件
前言:最近刚在廖雪峰老师的网站里学习了Python的基础内容,想着循序渐进地找点实例练练手,网上看到有很多相关资料,决定针对感兴趣的内容实际编码实践一下,昨天刚好看到有关使用Python来读取XML文 ...
- (十四)git操作
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
- 【洛谷P1343】地震逃生
一道傻吊的网络流题,wori我写的读入优化怎么老T? 远离读入优化报平安? #include<bits/stdc++.h> #define N 4005 #define inf 10000 ...
- codevs 1018 [noip 2000 提高] 单词接龙
题目链接:http://codevs.cn/problem/1018/ 题目描述 Description 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母, ...
- 2.shell变量
shell的变量的介绍 shell的变量分为系统变量和用户自定义变量系统变量:$HOME, $PWD, $SHELL, $USER等等,这些变量系统已经定义好了,我们可以直接拿来用用户自定义变量:我们 ...
- Selenium2+python自动化52-unittest执行顺序【转载】
前言 很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的.对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行. 本篇通过最简单案例详细讲解unittest执行顺 ...
- Scanner类的个人分析
Scanner类读取键盘输入(java中Scanner类nextLine()和next()的区别和使用方法&&java 中的Scanner(非常详细不看后悔)): 2017/3/18 ...