&
s важны. Без них пользователям клавиатуры, таким как я, будет труднее использовать ваше приложение.
Я думаю, что вашим лучшим решением будет использование функции StripHotkey
в блоке Vcl.Menus
для удаления символа амперсанда перед тем, как вы передадите подпись к CompareText
. (Кроме того, вместо проверки, если CompareText
возвращает 0
, лучше использовать функцию SameText
.)
То есть не пытайтесь создавать пункты меню без символа амперсанда, и не пытайтесь удалить его из пунктов меню. Удаляйте только символ из строки, передаваемой в функцию сравнения.
Также обратите внимание, что символ амперсанда не связан со свойством ShortCut
. Символ амперсанда подчеркивает следующий символ в заголовке пункта меню, сообщая пользователю, что он или она может нажать эту клавишу, чтобы активировать пункт меню, но только при открытом меню. С другой стороны, свойство ShortCut
добавляет выровненный по правому краю текст, такой как Ctrl+A
или Shift+Ctrl+N
или F2
, к элементу меню, и эти ярлыки доступны, даже если меню не открыто. Следовательно, это разные особенности.