在一个窗口里,我想实现按下特定的几个键(是几个键,而不是一个键),显示出一些文字。我现在的问题就是如果判断按下了那几个键的组合,如果是一个键还好说,但我想弄几个键的组合。就象在SQL里当按下Ctrl+F这两个组合键时,就可以调出查找功能一样。

解决方案 »

  1.   

    unit Unit1;interfaceuses
      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.
      

  2.   

    简单设置shortcut的组合键,比如设置菜单的快捷键
      

  3.   

    回wzxjh2000() 
    我想要用到的几个键不在菜单的快捷键中。
      

  4.   

    回lihuasoft(学习低调做人)
    我这里只有delphi5,不能编译你那个程序
    Variants这个通不过
      

  5.   

    刪除掉variants就是
    不需要的
      

  6.   

    比如你要按3个键,定义变量FKeyCount=3;在KEYDOWN中判断第一个按键,如果顺序符合你设定的顺序则将值-1,如果不同则FKeyCount=3;当FKeyCount=0时就是正确的值.
      

  7.   

    我用了ZyxIp(绝望中...) 的方法,这样确实是可以做到的。但是我假如我想让使用者在按下'Y'和'U'这两个键的时候(是同时)才显示一张图片,而如果不是同时按就不显示,而当松开这两个键的时候又再把那张图片隐藏掉,又该怎么写呢?