First, let me say that I abominate this feature in Windows Vista and Windows 7. Second, I want to do it. Here is a question asking how to do what I want here, in WPF.
I want to do the same thing, but in Delphi, using VCL stock components, TMainMenu or Action Manager menus, or some available third party components, even Toolbar2000 or some other library.
Feature of Windows Vista/Windows 7 explorer main-menus:
(* Windows Explorer Hotkeys Example: Ctrl+A in Microsoft Windows Explorer selects all even when the menus are invisible, Alt+T = bring up Tools popup menu, even when the whole menu is hidden).
Update: Demo using accepted answer can be downloaded here. (HiddenMenu.zip)
Use a TMainMenu
with a TActionList
as usual.
Then do
procedure TForm1.FormShow(Sender: TObject); begin Self.Menu := nil; end;
(or simply remove the Menu
association at design time) and
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_MENU) or (Key = VK_F10) then Menu := MainMenu1; end;
and
procedure TForm1.WndProc(var Message: TMessage); begin inherited; case Message.Msg of WM_EXITMENULOOP: SetMenu(Handle, 0); end; end;
Don't forget to set the form's KeyPreview
to true
.
(Notice that, since the shortcuts are handled by the TActionList
, they work even if the menu is 'gone'.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With