如何将快捷方式分配给 firemonkey TForm OnKeyDown 事件:
How to assign shortcuts to a firemonkey TForm OnKeyDown Event:
我在使用表单的 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
有什么建议吗?
提前致谢。
你最好使用带有动作的动作列表:
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。
我在使用表单的 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
有什么建议吗?
提前致谢。
你最好使用带有动作的动作列表:
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。