Delphi XE2:VirtualBox中不可见的Firemonkey控件

7
我正在VirtualBox中运行一个启用了2D和3D加速的Win7 x64 Pro,但是在Delphi中大多数控件(TButton、TStringGrid、TTabControl等)都是不可见的。如果我运行可执行文件,所有控件都能正常渲染。如何使这些控件在Delphi中可见?
我使用的是更新3的全新安装的Delphi XE2。
为了说明问题,我做了两个截图:
在Delphi IDE中 enter image description here 可执行文件 enter image description here 编辑: VirtualBox版本为4.1.8 r75467

2
那看起来像是一个bug。请提交一份质量控制报告。 - David Heffernan
为什么你没有在问题中插入图片? - RBA
1
@RBA 低声望用户不允许内联包含图像。我已经编辑了它们。 - David Heffernan
1
据我所知,FireMonkey 不支持 VirtualBox。 - RRUZ
@RRUZ 我在这里运行VirtualBox,FireMonkey在设计时和运行时都完美地工作。需要说明的是,在我安装了Guest Additions 安全模式之前,它并没有工作,而(如果您正确阅读消息)它会指示您执行此操作以获取DirectX支持! - LaKraven
2个回答

3
问题在于Firemonkey(在Windows下)使用DirectX来绘制其控件。(在OSX/iOS下会使用OpenGL)
在版本3之前,VirtualBox不支持DirectX,因此您无法看到Firemonkey控件。

然而好消息是,VirtualBox 3.0及以上版本支持DirectX,请参见:http://www.dedoimedo.com/computers/virtualbox-3-directx.html
这需要您在VirtualBox中安装DirectX驱动程序,请参阅文章。

我按照说明安装了Direct3D支持和DirectX,甚至成功运行了虚幻竞技场。然而,Delphi在IDE中仍然无法渲染控件。 - Gloegg
1
FireMonkey在设计时不使用Direct3D(或任何DirectX),而是使用GDI +。您在回答时也忽略了DirectX在运行时在VM中工作,但在设计时不起作用。这表明可能存在错误。 - LaKraven

1

从安全模式下安装Guest Additions(记得在提示时选择DirectX支持)。确保您正在运行相对较新的VirtualBox版本(4或更高版本)。

安装所有Windows更新(因为其中一个更新很可能解决了Windows 7的某些VM相关问题)。

这就是我所做的一切,FireMonkey在设计时和运行时都完美地工作!

如果您完成了所有这些步骤,但设计时控件仍然不可见...我强烈建议重新安装Delphi,因为我知道其他人也遇到了同样的问题,重新安装可以解决它们。


通过使用虚拟机,我想克服重新安装Delphi的问题。既然其他方法都不起作用,那我就这么做吧。 - Gloegg
然而,美妙的是,一旦重新安装后...你就不应该再次重新安装它了! - LaKraven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接