Скрытое главное меню в программе delphi, автоматически отображается с помощью клавиши Alt
во-первых, позвольте мне сказать, что я ненавижу эту функцию в Windows Vista и Windows 7. Во-вторых, я хочу это сделать. здесь это вопрос о том, как сделать то, что я хочу здесь, в WPF.
Я хочу сделать то же самое, но в Delphi, используя компоненты VCL stock, меню TMainMenu или Action Manager или некоторые доступные сторонние компоненты, даже Toolbar2000 или другую библиотеку.
функция проводника Windows Vista / Windows 7 главное меню:
- это не видно, когда приложение запускается
- нажатие и освобождение Alt делает его видимым
- нажатие и освобождение Alt снова делает его невидимым снова
- repeatable.
- горячие клавиши работают с пунктами меню, даже если меню невидимо*
(* горячие клавиши Проводника Windows пример: Ctrl+A в Проводнике Microsoft Windows выбирает все, даже если меню невидимы, Alt+T = открыть всплывающее меню " Инструменты, даже когда все меню спрятано).
обновление: демо с помощью принятого ответа можно загрузить здесь. (HiddenMenu.zip)
1 ответов
использовать TMainMenu
С TActionList
как обычно.
затем сделать
procedure TForm1.FormShow(Sender: TObject);
begin
Self.Menu := nil;
end;
(или просто удалить Menu
ассоциация во время разработки) и
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_MENU) or (Key = VK_F10) then
Menu := MainMenu1;
end;
и
procedure TForm1.WndProc(var Message: TMessage);
begin
inherited;
case Message.Msg of
WM_EXITMENULOOP:
SetMenu(Handle, 0);
end;
end;
не забудьте установить формы KeyPreview
to true
.
(обратите внимание, что, поскольку ярлыки обрабатываются TActionList
, они работают, даже если меню "исчезло".)