如何使得THotKey可以只输入Ctrl呢?

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Form1.KeyPreview:=true;
    end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key = 17 then
        showmessage('你按了我设置的热键Ctrl了');
    end;
      

  2.   

    //HotKey1的OnChange事件
    procedure TForm1.HotKey1Change(Sender: TObject);
    begin
      if HotKey1.Tag = 0 then
      begin
        if HotKey1.HotKey = scCtrl then//只有Ctrl键按下
          HotKey1.Tag := 1
        else if HotKey1.HotKey = 0 then
        begin
          HotKey1.OnChange := nil;
          HotKey1.HotKey := scCtrl;
          HotKey1.OnChange := HotKey1Change;
          HotKey1.Tag := 1;
        end;
      end
      else
      begin
        if HotKey1.HotKey = 0 then//Ctrl键弹起
        begin
          HotKey1.OnChange := nil;
          HotKey1.HotKey := scCtrl;
          HotKey1.OnChange := HotKey1Change;
        end;
        HotKey1.Tag := 0;
      end;
    end;