Карта сайтаСсылкиКонтакты

Изменение пункта меню по умолчанию

PDF Печать
Статьи

Для того, чтобы изменить заданный по умолчанию пункт всплывающего меню:


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);

 

Добавить комментарий


Защитный код
Обновить