delphi中运行程序主菜单不显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中运行程序主菜单不显示相关的知识,希望对你有一定的参考价值。

主窗口MENU已经引用菜单,也设成可视了,但运行时,主菜单就是不显示

参考技术A 空工程,新建OK的话

但已有代码一调用就不显示

显然, 这个进销存代界面代码包括一个框架,这个框架代码一般主要是为

权限---功能 对应关系服务的

也就是你的菜单如果不作特别处理 如 Tag 给特定值的话(当然你的框架可能还有其它方式干这个事)

这个权限管理代码会让其不显示。追问

感觉你说的最靠谱,权限还在摸索中

参考技术B 1、看看hide属性、enable属性、visible属性是否正确;
2、做一个测试程序,只建一个主菜单窗口,看看能不能显示,如果能,说明不是delphi的问题,而是你程序的问题;
3、实在不行,重新建个工程,把代码复制过去;追问

我属于第二种情况,新建一个可以显示菜单,但如你第三条所说,重新建了工程,复制代码过去后,运行仍然不显示
我做的是一个进销存系统(新手)
这个问题让我无语

追答

那肯定是代码有问题,可以尝试一点一点的往里面加代码,看看加到那一句就不显示了;
或者一点一点的删代码,看看删到那一句就显示出来了。

参考技术C 没有权限,把菜单隐藏了。
查看代码

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】:

像往常一样使用TMainMenuTActionList

那就做吧

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中运行程序主菜单不显示的主要内容,如果未能解决你的问题,请参考以下文章

delphi程序中为啥运行后程序窗口不显示,进程中有

delphi程序运行时别的功能无法使用

Delphi动态创建菜单

delphi VCL显示问题 分线程与主线程的同步

在 Delphi 2007 中丢失了一些调试功能

delphi2007如何让程序不在任务栏中隐藏和显示?