Ctrl + - (Ctrl + Hyphen-Minus) в качестве клавиши быстрого вызова?

Может показаться естественным использовать 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 справляется с ситуацией.

6
задан Jasper 15 September 2011 в 06:22
поделиться