Невозможно получить амперсанд (&) для отображения в Delphi TActionMainMenuBar

Мне нужна помощь, чтобы попытаться отобразить символ амперсанда в Delphi XE6 VCL TActionMainMenuBar. Я сталкивался с подобными запросами в Stack Overflow, но ни один из них напрямую не решает проблему, с которой я столкнулся.

При создании действия в TActionManager мне нужно, чтобы заголовок действия читался как Network & Database. Я попытался использовать два амперсанда в заголовке Network && Database, чтобы избежать ускорителя, но это не сработало. Когда я включил два амперсанда, я получил Network _Database (см. Скриншот 1). Я также установил для свойства ActionBar > Items > AutoHotKeys значение false, а для свойства ActionMainMenuBar > PersistentHotKeys — значение false. Это не исправило мою проблему.

Скриншот1

Единственная вещь, которую я попробовал из чистого отчаяния, и которую я считал исправленной, заключалась в том, чтобы включить четыре амперсанда Network &&&& Database, которые при запуске отображались как Network & Database (см. Скриншот 2). Однако во время тестирования, если бы я нажимал Alt, чтобы включить горячие клавиши и перейти в меню, заголовок действия читался бы как Network && Database. Я попытался включить скриншот этого, однако, поскольку у меня меньше 10 очков репутации, Stack Overflow ограничивает мой пост двумя вложениями.

Скриншот2

Если кто-нибудь может указать мне правильное направление, если я упустил какую-то информацию, пожалуйста, дайте мне знать. У меня закончились идеи о том, как это исправить, и я не могу найти ничего подобного при поиске в Google. Заранее спасибо за помощь.


person CKilpatrick    schedule 01.02.2017    source источник
comment
Голосовать.   -  person Sertac Akyuz    schedule 02.02.2017
comment
Действительно ли это важно отображать & ? Почему бы просто не использовать Network and Database или Network / Database? Я только что просмотрел пункты меню в нескольких приложениях (например, Notepad++, Visual Studio) и еще не видел ничего, кроме A and B. Нет & нигде. Возможно, вы ведете битву, которую другие уже решили, что она того не стоит? :)   -  person Deltics    schedule 02.02.2017
comment
@Deltics Это только битва, потому что RTL и VCL облажались. Системные меню могут сделать это.   -  person David Heffernan    schedule 02.02.2017
comment
связанная запись контроля качества для этой ошибки содержит обходной путь.   -  person mjn42    schedule 02.02.2017
comment
@Deltics, если бы это зависело от меня, я бы согласился с вами и просто заменил амперсанд на слово и. К сожалению, мне было поручено разобраться с этим моим начальником.   -  person CKilpatrick    schedule 02.02.2017
comment
@ mjn42 Спасибо за ссылку. Очень ценю. Я пойду вперед и попробую и посмотрю, как это работает. Еще раз спасибо.   -  person CKilpatrick    schedule 02.02.2017
comment
Код в связанной записи контроля качества решил мою проблему. Удивлен (не совсем), что он все еще присутствует в Берлине. @SertacAkyuz Сначала я не увидел ваш комментарий, но проголосовал за него. Спасибо всем за помощь. Это сводило меня с ума.   -  person CKilpatrick    schedule 02.02.2017
comment
@CKilpatrick - Да, это короткий комментарий, который легко пропустить. ;) Пожалуйста.   -  person Sertac Akyuz    schedule 02.02.2017
comment
@David - причина битвы не меняет того факта, что битва должна состояться. Можно только предположить, что менеджер этого конкретного проекта находится в роскошном положении, поскольку у него нет более важных вещей, на которые разработчики могли бы тратить время. Если бы нам всем так повезло. :) Но если Notepad++, Visual Studio и т. д. не используют Delphi RTL/VCL, то, по-видимому, есть другие причины не использовать & в меню, даже если битва отсутствует (или битва, возможно, остается , а по другим причинам).   -  person Deltics    schedule 08.02.2017
comment
Для справки: probizwriters.com/PBW-blog/index.php/ampersand -usage (короткая версия: & не просто альтернатива/замена and)   -  person Deltics    schedule 08.02.2017


Ответы (1)


Вы можете исправить это на мероприятии onshow вашей формы

action3.caption := 'Network &&Database';
person Tony Hanna    schedule 12.04.2017