| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > проблема с меню |
| Автор: bent 20.3.2006, 16:45 |
| Здравствуйте. Может, Вас и позабавит моя проблема, но я работаю только чуть больше года, ну а с меню работать пришлось только вот сейчас. Итак, разрабатывается некоторый графический редактор (ну, это неважно). В нем реализуется типовое переключение между окнами с помощью пункта меню "Window". Здесь вот начинается проблема. Открыто у меня несколько окон и я хочу переключиться. Для этого нужно знать имя окна. Вот отрывок кода: TMenuItem *vClickedItem = dynamic_cast<TMenuItem *>(Sender); if (vClickedItem) { AnsiString vFrameName; vFrameName = vClickedItem->Caption; int vClickedIndex = mpDesignerOpenedFrameList->IndexOf(vFrameName); }. Так вот, к названию окна приписывается амперсанд (&), т.е. vFrameName = "&название окна". Ну, я стал вырезать его - тогда при двух открытых окнах стало работать, но если больше, возникает такая ситуация: например, есть три открытых окна и в обработчике клика бывает такое: vFrameName = "D:\\&остальной путь". В Help'е почитал про это и выяснил, что это связано с клавишами быстрого доступа и для отключения добавления амперсанда нужно использовать метод TMenuItem::RethinkHotkeys(). Делал - проблема осталась. Помогите пожалуйста, если Вам понятна проблема. |
| Автор: Romikgy 20.3.2006, 17:03 |
| неа не понятна |
| Автор: sexton 20.3.2006, 17:18 |
| А наличие амперсанда в названии принципиально? Может стоит убрать его нафиг? |