Изменение пункта меню по умолчанию
uses Menus; function TriggerDefaultMenuAction( const Menu: TMenu): Boolean; overload; var Idx: Integer; MI: TMenuItem; begin Assert(Assigned(Menu)); Result := False; for Idx := 0 to Pred(Menu.Items.Count) do begin MI := Menu.Items[Idx]; if MI.Default then begin MI.Click; Result := True; Break; end; end; end;
Функция возвращает True, если найден пункт меню по умолчанию и False, если нет.
TriggerDefaultMenuItem будет также работать и с компонентом главного меню, но это не очень полезно, так как проверяются только пункты меню верхнего уровня, а это бывает нужно очень редко.
Вы можете приспособить код, чтобы переключать пункт меню по умолчанию под-меню, как показано ниже:
function TriggerDefaultMenuAction( const MenuItem: TMenuItem): Boolean; overload; var Idx: Integer; MI: TMenuItem; begin Assert(Assigned(MenuItem)); Result := False; for Idx := 0 to Pred(MenuItem.Count) do begin MI := MenuItem.Items[Idx]; if MI.Default then begin MI.Click; Result := True; Break; end; end; end;
В этом коде в цикле проверяются все пункты меню подменю. Если, например, Вы имели меню File в главном меню (по имени File1) и это меню имело заданный по умолчанию пункт, Вы можете вызвать его, вызвав:
TriggerDefaultMenuItem(File1);
Комментарии