delphi - 动态显示和隐藏主菜单不会立即应用
问题描述
我的 Delphi 应用程序首先显示主窗体,但只有一个用户登录面板。我隐藏了主菜单,因此未经身份验证的用户无法访问它。用户登录后,我通过设置动态分配菜单Form.Menu := MyMainMenu;
。
但是,当用户登录时,我如前所述分配主菜单,在以某种方式调整表单大小之前,它不会立即可见。最小化窗口并再次显示它也会触发主菜单显示。但是,我需要它在分配时立即显示。
我在分配主菜单后尝试添加以下尝试,但没有区别:
Self.Repaint;
Self.Refresh;
Application.ProcessMessages;
我唯一能做的就是在运行时稍微调整表单的大小,然后触发它显示。但是,这不仅是草率,而且我的应用程序默认显示为最大化状态。
注意:我正在使用 VCL 样式。没有样式,它显示得很好。尝试Vcl-Styles-Utils
和它的修复并没有什么不同。
如何让新分配的主菜单立即显示而无需“调整大小”黑客?
如果没有 VCL 样式,就不会发生这种内存泄漏。并不是说我要为此寻求解决方案,而是可能有助于确定根本问题的附加症状。
解决方案
推荐阅读
- ios - @supports 指令在 Safari iOS 中的工作原理
- javascript - 在页面标题中显示 HTML
- json - 使用 Log4j2 json 配置配置 Kafka Appender
- python - 从一个非常大的二进制文件中有效地读取几行
- python - 如何在 pandas 中组合宽和长数据框?
- c - char s[] 和 char *s 在初始化方面有什么区别?
- sql-server - 如何仅将数据从一个数据库复制到同一网络中其他服务器上的另一个数据库?
- scala - 将数据帧写入 hdfs 的 Spark 作业被中止 FileFormatWriter.scala:196
- javascript - Dropzone 客户端通过文件上传到 AWS 预签名 url 来调整大小
- android - 导航和路由颤振