Может показаться естественным использовать Ctrl + + , Ctrl + - и Ctrl + 0 в качестве ярлыков для увеличения или уменьшения масштаба приложения и восстановления действий по умолчанию (обычно 100%). Теперь, в Дельфи, Я могу назначить 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 справляется с ситуацией.