如何为firemonkey TForm OnKeyDown事件分配快捷方式:

问题描述 投票:1回答:1

我在使用表单的OnKeyDown事件为Firemonkey上的TabItem分配快捷方式时遇到问题。

似乎ctrl键的工作方式就像被一次又一次地按下和释放一样。

这是我正在尝试做的事情:

procedure TfrmPrincipal.FormKeyDown(Sender: TObject; var Key: Word;
  var KeyChar: Char; Shift: TShiftState);
begin
   if ssCtrl in Shift then
   begin
      if UpperCase(KeyChar) = 'L' then
       TabItem1.SetFocus;
   end;
end;

它不起作用,经过一段时间的谷歌搜索,发现很多VCL驱动的答案,我找不到任何可以帮助我使用Firemonkey的东西。

我正在使用东京10.2.2

有小费吗?

提前致谢。

delphi firemonkey shift onkeydown
1个回答
3
投票

您最好使用具有操作的动作列表:

procedure TTabbedForm.Action1Execute(Sender: TObject);
begin
  TabControl1.ActiveTab := TabItem1;
end;

object ActionList1: TActionList
  Left = 176
  Top = 272
  object Action1: TAction
    Text = 'Action1'
    ShortCut = 16460
    OnExecute = Action1Execute
  end
end

关于你的代码:

TabItem1.SetFocus不起作用,使用TabControl1.ActiveTab:= TabItem1;

当按下Ctrl键时,FormKeyDown中的KeyChar没有值,请使用Key。

© www.soinside.com 2019 - 2024. All rights reserved.