Как отключить меню, подменю в ActionMainMenuBar?
Использование: Delphi XE3, приложение VCL Forms
У меня есть меню, содержащее подменю в ActionMainMenuBar. Как я могу с помощью кода:
- отключить меню
- отключить подменю
3 ответа
Создайте "TAction" для каждого меню / подменю, которое вы хотите отключить. Не назначайте их ни в одну категорию.
Создайте обработчик события OnExecute для этих действий, чтобы их можно было включить. Вам не нужно помещать какой-либо код в обработчик, для IDE достаточно комментария ('//'), чтобы не удалять обработчики.
Выберите "TActionClient", который представляет меню / подменю от дизайнера форм, просто нажмите на элемент.
Назначьте одно из действий его свойству "Действие" в инспекторе объектов.
Включите / отключите действие, связанное с "TActionClient", которое представляет меню / подменю во время выполнения для меню / подменю, которое должно быть соответственно включено / отключено.
Вы можете фактически отключить его во время выполнения (в любом случае в Delphi 7), если знаете индекс элемента меню верхнего уровня для категории следующим образом:
ActionMainMenuBar.ActionControls[2].Enabled := False;
ActionControls [2] будет категорией, отображаемой как элемент меню верхнего уровня (после перетаскивания категории на ActionMainMenuBar из ActionManager.
Используя свойство "enabled" меню? или пункт меню, который является отправной точкой подменю...