我最近升级到 Delphi 10.4.2(来自 10.4.1),现在在使用 QuickReport 预览时遇到了一些奇怪的行为。
在主窗体上,我使用带有一些子菜单的 MainMenu。当子菜单项中的代码导致显示 QuickReport 预览时,关闭此预览窗口后主窗体消失。
调试使我找到了 Vcl.Forms.pas 单元中的这段新代码。过程 TFormStyleHook.TMainMenuBarStyleHook.ProcessMenuLoop 现在结束如下:
if FDispatchMessage then
DispatchMessage(Msg)
else
if Msg.Message = CM_RELEASE then
FFormHook.Form.Release;
以前的 Delphi 版本中没有 else 标签。QuickReport 预览窗口关闭后,FFormHook.Form 指向 MainForm,该 MainForm 将被释放。所以应用程序仍在运行,但主窗体消失了,任务栏中没有应用程序图标。
我的应用程序使用样式。当我从顶层的 MainMenu 项调用 QuickReport 时,不会发生此行为。
有没有其他人遇到过同样的问题?