Firemonkey的多个表单在Windows菜单中显示多个项目

Firemonkey的多个表单在Windows菜单中显示多个项目,第1张

概述我正在尝试使用Firemonkey并遇到了这个问题. 在我的应用程序中有多个表单时,我得到相同数量的项目 在我的 Windows菜单栏中为一个应用程序(见截图). 在常规VCL应用程序中,只有一个项标识应用程序 (所以我的截图只包含’Form2’项目). 有谁知道如何实现与VCL应用程序相同的行为, 所以我的多表格应用程序只有一个项目??? 提前致谢! 泰斯 编辑:我设法显示第二个表单,底部菜单只 我正在尝试使用Firemonkey并遇到了这个问题.
在我的应用程序中有多个表单时,我得到相同数量的项目
在我的 Windows菜单栏中为一个应用程序(见截图).

在常规VCL应用程序中,只有一个项标识应用程序
(所以我的截图只包含’Form2’项目).

有谁知道如何实现与VCL应用程序相同的行为,
所以我的多表格应用程序只有一个项目???

提前致谢!

泰斯

编辑:我设法显示第二个表单,底部菜单只有一个项目,但表单的属性’Transparency’必须是真的!因此,为了使第二种形式可见,需要将TRectangle放置在第二种形式中(没有带有标题和按钮的框架可见)…

解决方法 我找到了解决方法.

当您使用所有者创建表单时,FireMonkey应该将所有者传递给windows CreateWindowEx函数,但它不会.

在单元FMX.Platform.Win中,在CreateWindow()函数中,更改:

Wnd := CreateWindowEx(ExStyle,WindowClass.lpszClassname,PChar(AForm.Caption),Style,Integer(CW_USEDEFAulT),GetDesktopWindow,hInstance,nil);

对此:

// If there's an owner,and it's a form,then create the window as a child  if (AForm <> nil) and (AForm.Owner <> nil) and (AForm.Owner is TForm) then  begin    // Child window    Wnd := CreateWindowEx(ExStyle,HandletoHWND(TForm(AForm.Owner).Handle),nil);  end  else  begin    // Desktop window    Wnd := CreateWindowEx(ExStyle,nil);  end;

因此,如果您要创建子项,尤其是模态表单,请确保在创建父表单时将其指定为所有者,如下所示:

MyModalForm := TMyModalForm.Create(MyParentForm);MyModalForm.ShowModal;

然后,在修复之后,一切都将按预期工作.

不要忘记从项目设置中的自动创建表单列表中删除子表单.

总结

以上是内存溢出为你收集整理的Firemonkey的多个表单在Windows菜单中显示多个项目全部内容,希望文章能够帮你解决Firemonkey的多个表单在Windows菜单中显示多个项目所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1059661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存