Как отключить меню, подменю в ActionMainMenuBar?

Использование: Delphi XE3, приложение VCL Forms

У меня есть меню, содержащее подменю в ActionMainMenuBar. Как я могу с помощью кода:

  1. отключить меню
  2. отключить подменю

3 ответа

Решение
  1. Создайте "TAction" для каждого меню / подменю, которое вы хотите отключить. Не назначайте их ни в одну категорию.

  2. Создайте обработчик события OnExecute для этих действий, чтобы их можно было включить. Вам не нужно помещать какой-либо код в обработчик, для IDE достаточно комментария ('//'), чтобы не удалять обработчики.

  3. Выберите "TActionClient", который представляет меню / подменю от дизайнера форм, просто нажмите на элемент.

  4. Назначьте одно из действий его свойству "Действие" в инспекторе объектов.

  5. Включите / отключите действие, связанное с "TActionClient", которое представляет меню / подменю во время выполнения для меню / подменю, которое должно быть соответственно включено / отключено.

Вы можете фактически отключить его во время выполнения (в любом случае в Delphi 7), если знаете индекс элемента меню верхнего уровня для категории следующим образом:

ActionMainMenuBar.ActionControls[2].Enabled := False;

ActionControls [2] будет категорией, отображаемой как элемент меню верхнего уровня (после перетаскивания категории на ActionMainMenuBar из ActionManager.

Используя свойство "enabled" меню? или пункт меню, который является отправной точкой подменю...

Другие вопросы по тегам