要实现如下的功能该怎么操作?求教

winstonbonaparte 2006-12-29 12:58:10
在一个窗口里,我想实现按下特定的几个键(是几个键,而不是一个键),显示出一些文字。我现在的问题就是如果判断按下了那几个键的组合,如果是一个键还好说,但我想弄几个键的组合。就象在SQL里当按下Ctrl+F这两个组合键时,就可以调出查找功能一样。
...全文
213 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuucyf 2007-04-06
  • 打赏
  • 举报
回复
m
winstonbonaparte 2007-01-14
  • 打赏
  • 举报
回复
我用了ZyxIp(绝望中...) 的方法,这样确实是可以做到的。但是我假如我想让使用者在按下'Y'和'U'这两个键的时候(是同时)才显示一张图片,而如果不是同时按就不显示,而当松开这两个键的时候又再把那张图片隐藏掉,又该怎么写呢?
winstonbonaparte 2006-12-29
  • 打赏
  • 举报
回复
回lihuasoft(学习低调做人)
我这里只有delphi5,不能编译你那个程序。。。
Variants这个通不过
winstonbonaparte 2006-12-29
  • 打赏
  • 举报
回复
回wzxjh2000()
我想要用到的几个键不在菜单的快捷键中。
wzxjh2000 2006-12-29
  • 打赏
  • 举报
回复
简单设置shortcut的组合键,比如设置菜单的快捷键
lihuasoft 2006-12-29
  • 打赏
  • 举报
回复
unit Unit1;

interface

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

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);

private
{ Private declarations }
ID : Integer;
procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure do_SysKey;
begin
showmessage('你按下了 Alt + Shift + CapsLock 组合键');
end;

procedure TForm1.WMHotKey(var Msg : TWMHotKey);
begin
if msg.HotKey = ID then do_SysKey;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if FindAtom('LihuaSoft2') = 0 then
begin
ID:=GlobalAddAtom(pchar('LihuaSoft2'))-$C000;
{ Alt + Shift + CapsLock 组合键 }
RegisterHotkey(Handle,ID,MOD_alt or mod_shift,$14);
end;
end;

end.
ZyxIp 2006-12-29
  • 打赏
  • 举报
回复
比如你要按3个键,定义变量FKeyCount=3;

在KEYDOWN中判断第一个按键,如果顺序符合你设定的顺序则将值-1,如果不同则FKeyCount=3;

当FKeyCount=0时就是正确的值.
hanyel 2006-12-29
  • 打赏
  • 举报
回复
刪除掉variants就是
不需要的

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧