DevExpress. Заметки на полях #2
Если у вас есть приложение и вы используете классический компонент TMainMenu, то переход DevExpress для вас пройдет значительно проще. Вы можете использовать компонент TdxBarConverter. Это редкий случай, когда Delphi компонент используется исключительно в режиме разработки (Desighn Time). Разместите компонент на форме. Установите значения свойств Menu и BarManager. В Object Inspector «наступите» мышкой на значение свойства Execute. Получите преобразованный dxBarManager. Несколько нетрадиционно, не правда ли? Но, тем не менее, довольно эффективно.
Перед тем, как компилировать и запускать приложение, удалите компонент TdxBarConverter и, соответственно, модуль dxBarConverter. Если вы это не сделаете, то получите ошибку компиляции.
Размещать кнопки на dxRibbon-компоненте придется вручную. Двойной щелчок на dxBarManager открывает окно редактора команд. Далее – используйте перетаскивание.
К сожалению, мне не удалось найти решения проблемы «быстрого импорта dxBarManager» для случая, когда я использую в качестве главного меню экземпляр класса TActionMainMenuBar. Да и саму процедуру импорта логичнее бы было организовать с помощью расширения IDE.









4 Comments to “DevExpress. Заметки на полях #2”
А мне кажется, что подход с компонентов более правильный. Ведь такое преобразование как правило нужно всего один раз.
Компонент поставил, сделал дело и удалил с формы. А расширение IDE будет всё время глаза мозолить. Да и к тому же сам способ – интересный.
Хм…
Не уверен. Можно же и расширение IDE сделать, которое контролировало бы состояние главной формы, на предмет есть -ли там MainMenu. И, соответственно, прятало функционал при отсутствии такового….
А можно этот функционал встроить в какой-нибудь редактор свойств для dxBarManager.
По-своему опыту могу сказать, что всегда лучше с dxBar лучше меню с нуля собирать, иначе некоторые приятные возможности этого компонента теряются.
Я экспорт сделал без проблем. Потом, конечно пришлось и ручной работы много сделать, но, все таки это значительно проще. Собственно, подробности я опишу чуть позже…