Изменение пункта меню по умолчанию
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);
Комментарии