Может показаться естественным использование Ctrl + + , Ctrl + - и Ctrl + 0 в качестве ярлыков для увеличения или уменьшения масштаба приложения и восстановления действий по умолчанию (обычно 100%).Теперь в Delphi я могу назначить ярлыки Ctrl + + и Ctrl + 0 .Первый, тем не менее, требует использования знака плюс основной части клавиатуры;знак «плюс» на цифровой клавиатуре нельзя использовать.
Однако возникает проблема, когда я хочу назначить Ctrl + - в качестве ярлыка.Это просто не работает.Если я назначу "Ctrl + -" в IDE, значение, сохраненное в свойстве ShortCut
, будет 16495
.Если из этого вычесть ssCtrl
, мы получим 111. Обходным путем, можно было бы поверить, было бы присвоение ShortCut := 45 + ssCtrl
или, что эквивалентно, ShortCut := Menus.ShortCut(45, [ssCtrl])
, потому что ord('-') = 45
.Но это не работает.
Однако я нашел рабочее решение: ShortCut := 189 + ssCtrl
.Я выбираю 189, потому что это число, которое я получаю, когда нажимаю клавишу «-» и слушаю событие KeyDown
.
Итак, почему я не доволен этим?Ну, я боюсь, что константа 189 действительна только на шведских клавиатурах .Я попытался прочитать об этом, и, как обычно, документация MSDN довольно ясна, но кто знает, как Delphi справляется с ситуацией.