首页 > 解决方案 > 动态显示和隐藏主菜单不会立即应用

问题描述

我的 Delphi 应用程序首先显示主窗体,但只有一个用户登录面板。我隐藏了主菜单,因此未经身份验证的用户无法访问它。用户登录后,我通过设置动态分配菜单Form.Menu := MyMainMenu;

但是,当用户登录时,我如前所述分配主菜单,在以某种方式调整表单大小之前,它不会立即可见。最小化窗口并再次显示它也会触发主菜单显示。但是,我需要它在分配时立即显示。

我在分配主菜单后尝试添加以下尝试,但没有区别:

Self.Repaint;
Self.Refresh;
Application.ProcessMessages;

我唯一能做的就是在运行时稍微调整表单的大小,然后触发它显示。但是,这不仅是草率,而且我的应用程序默认显示为最大化状态。

注意:我正在使用 VCL 样式。没有样式,它显示得很好。尝试Vcl-Styles-Utils和它的修复并没有什么不同。

如何让新分配的主菜单立即显示而无需“调整大小”黑客?


附带说明一下,当我关闭应用程序时,我有内存泄漏: 主菜单上 VCL 样式的内存泄漏

如果没有 VCL 样式,就不会发生这种内存泄漏。并不是说我要为此寻求解决方案,而是可能有助于确定根本问题的附加症状。

标签: delphimenuvcldelphi-10.1-berlinvcl-styles

解决方案


推荐阅读