2017-12-31 8 views
1

FireKey의 TabItem에 대한 단축키를 폼의 OnKeyDown 이벤트를 사용하여 지정하는 데 문제가 있습니다.firemonkey에 단축키를 할당하는 방법 TForm OnKeyDown 이벤트 :

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

모든 팁을 사용하고 있습니다?

미리 감사드립니다.

당신은 더 나은 것을위한 조치와 함께 ACTIONLIST를 사용
+0

또한 Key 매개 변수를 처리하고 키 값을 찾을 수 있습니다 (예 : Enter 키는 13이거나 Enter 키는 vkReturn 만 사용할 수 있습니다). 코드에서 L 키는 vkL이고 값은 76입니다. 따라서 OnKeyDown 이벤트 만 사용할 수 있습니다. 이것은 당신을 도울 것입니다; if (Key = vkL) then TabControl1.ActiveTab : = TabItem1; –

답변

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 키를 사용하십시오.

관련 문제