2017-12-31 21 views
1

Ich habe Probleme beim Zuweisen einer Verknüpfung zu einem TabItem auf Firefemonkey mit dem OnKeyDown-Ereignis des Formulars.So weisen Sie Shortcuts zu einem FireMonkey zu TForm OnKeyDown Ereignis:

Es scheint, dass die Strg-Taste funktioniert, als ob sie gedrückt und wieder und wieder freigegeben wird. Hier

ist, was ich versuche zu tun:

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; 

Es funktioniert nicht und nach einer Weile googeln und viele VCL angetrieben Antworten gefunden, ich konnte nichts finden, die mir helfen können mit Feuerwehrmann.

Ich benutze Tokyo 10.2.2

Irgendwelche Tipps?

Vielen Dank im Voraus.

+0

Sie können auch den Key-Parameter behandeln und Ihren Key-Wert finden (zB Enter-Taste ist 13 oder Sie können einfach vkReturn für Enter verwenden). Wie Ihr Code sagt, ist der L-Schlüssel vkL und sein Wert ist 76. Vielleicht können Sie einfach das OnKeyDown-Ereignis verwenden. Das wird dir helfen; if (Key = vkL) dann TabControl1.ActiveTab: = TabItem1; –

Antwort

3

Sie besser, eine Aktionsliste mit einer Aktion für das verwenden:

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 

Über Code:

TabItem1.SetFocus nicht funktioniert, verwenden TabControl1.ActiveTab: = TabItem1;

KeyChar in FormKeyDown hat keinen Wert, wenn die Strg-Taste gedrückt wird, verwenden Sie Key dafür.

Verwandte Themen