delphi中运行程序主菜单不显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中运行程序主菜单不显示相关的知识,希望对你有一定的参考价值。
主窗口MENU已经引用菜单,也设成可视了,但运行时,主菜单就是不显示
参考技术A 空工程,新建OK的话但已有代码一调用就不显示
显然, 这个进销存代界面代码包括一个框架,这个框架代码一般主要是为
权限---功能 对应关系服务的
也就是你的菜单如果不作特别处理 如 Tag 给特定值的话(当然你的框架可能还有其它方式干这个事)
这个权限管理代码会让其不显示。追问
感觉你说的最靠谱,权限还在摸索中
参考技术B 1、看看hide属性、enable属性、visible属性是否正确;2、做一个测试程序,只建一个主菜单窗口,看看能不能显示,如果能,说明不是delphi的问题,而是你程序的问题;
3、实在不行,重新建个工程,把代码复制过去;追问
我属于第二种情况,新建一个可以显示菜单,但如你第三条所说,重新建了工程,复制代码过去后,运行仍然不显示
我做的是一个进销存系统(新手)
这个问题让我无语
那肯定是代码有问题,可以尝试一点一点的往里面加代码,看看加到那一句就不显示了;
或者一点一点的删代码,看看删到那一句就显示出来了。
查看代码
delphi 程序中隐藏的主菜单,使用 Alt 键自动显示
【中文标题】delphi 程序中隐藏的主菜单,使用 Alt 键自动显示【英文标题】:Hidden Main Menu in a delphi program, automatically shown using Alt key 【发布时间】:2011-09-22 02:09:13 【问题描述】:首先,让我说我讨厌 Windows Vista 和 Windows 7 中的这个功能。其次,我想做它。 Here 是一个问题,询问如何在 WPF 中执行我想要的操作。
我想做同样的事情,但在 Delphi 中,使用 VCL 库存组件、TMainMenu 或 Action Manager 菜单,或一些可用的第三方组件,甚至是 Toolbar2000 或其他一些库。
Windows Vista/Windows 7 资源管理器主菜单的特点:
应用启动时不可见 按下并释放 Alt 使其可见 再次按下并释放 Alt 使其再次不可见 可重复。 热键适用于菜单项,即使菜单不可见*(* Windows 资源管理器热键示例:即使菜单不可见,Microsoft Windows 资源管理器中的 Ctrl+A 也会全选,Alt+T = 显示工具弹出菜单,即使整个菜单都隐藏)。
更新: 使用已接受答案的演示可以下载here。 (HiddenMenu.zip)
【问题讨论】:
Windows 资源管理器中有很多我讨厌的功能。隐藏已知/注册文件类型的扩展名、“简化文件共享”以及您需要进入对话框以更改 NTFS 文件权限的 9 级深度是我“最不喜欢的”。 :-) 【参考方案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
设置为true
。
(请注意,由于快捷方式是由TActionList
处理的,因此即使菜单“消失”也可以使用。)
【讨论】:
@David:没有想象中的那么好...如果您单击菜单项,似乎不会触发该操作。我正在努力…… 不确定,但 FormKeyDown 的 if 子句中是否缺少Key := 0;
?
@Uwe:不,你也想要默认行为。
'按下并释放 Alt 使其可见'。虽然用OnKeyUp
替换OnKeyDown
可能没有问题。以上是关于delphi中运行程序主菜单不显示的主要内容,如果未能解决你的问题,请参考以下文章