Если у вас есть приложение и вы используете классический компонент TMainMenu, то переход DevExpress для вас пройдет значительно проще. Вы можете использовать компонент TdxBarConverter. Это редкий случай, когда Delphi компонент используется исключительно в режиме разработки (Desighn Time). Разместите компонент на форме. Установите значения свойств Menu и BarManager. В Object Inspector «наступите» мышкой на значение свойства Execute. Получите преобразованный dxBarManager. Несколько нетрадиционно, не правда ли? Но, тем не менее, довольно эффективно.
Перед тем, как компилировать и запускать приложение, удалите компонент TdxBarConverter и, соответственно, модуль dxBarConverter. Если вы это не сделаете, то получите ошибку компиляции.
Размещать кнопки на dxRibbon-компоненте придется вручную. Двойной щелчок на dxBarManager открывает окно редактора команд. Далее – используйте перетаскивание.
К сожалению, мне не удалось найти решения проблемы «быстрого импорта dxBarManager» для случая, когда я использую в качестве главного меню экземпляр класса TActionMainMenuBar. Да и саму процедуру импорта логичнее бы было организовать с помощью расширения IDE.
Другие статьи серии:
DevExpress. Заметки на полях #0
DevExpress. Заметки на полях #1
DevExpress. Заметки на полях #3
DevExpress. Заметки на полях #3.5
DevExpress. Заметки на полях #5
DevExpress. Заметки на полях #6
DevExpress. Заметки на полях #7
DevExpress. Заметки на полях #8
DevExpress. Заметки на полях #9
DevExpress. Заметки на полях #10
DevExpress. Заметки на полях #11
DevExpress. Заметки на полях #12
DevExpress. Заметки на полях #13
А мне кажется, что подход с компонентов более правильный. Ведь такое преобразование как правило нужно всего один раз.
Компонент поставил, сделал дело и удалил с формы. А расширение IDE будет всё время глаза мозолить. Да и к тому же сам способ – интересный.
Хм…
Не уверен. Можно же и расширение IDE сделать, которое контролировало бы состояние главной формы, на предмет есть -ли там MainMenu. И, соответственно, прятало функционал при отсутствии такового….
А можно этот функционал встроить в какой-нибудь редактор свойств для dxBarManager.
По-своему опыту могу сказать, что всегда лучше с dxBar лучше меню с нуля собирать, иначе некоторые приятные возможности этого компонента теряются.
Я экспорт сделал без проблем. Потом, конечно пришлось и ручной работы много сделать, но, все таки это значительно проще. Собственно, подробности я опишу чуть позже…