以下是使用firemonkey Delphi XE2制作的delphi应用程序示例.
您可以看到,您可以使用Firemonkey中的视觉风格“风格书”来自定义窗口框架内大部分内容的外观.然而,Windows框架的外部是使用Windows决定的任何样式绘制的.现在如果我使用VCL而不是Firemonkey,我可以在深色配置中应用“VCL样式”和“皮肤”整个VCL应用程序.
我的猜测是,这不是Delphi XE2 Firemonkey不可思议的.任何人都可以展示如何做到这一点吗
在设计时,您的表格的“预览”显示了一个很好的黑色边框.但是当我运行我的应用程序时,Windows XP“Luna”主题边框(下图中的蓝色部分)看起来很残酷.讽刺的是,VCL比Firemonkey更漂亮(XE2风格)
解决方法
您可以像往常一样创建VCL Forms应用程序,如果您喜欢,您可以在运行时加载您的Firemonkey表单并将VCL表单设置为父级:
uses FMX.Platform.Win,FMX.Forms,Unit2; procedure TForm1.FormCreate(Sender: TObject); var Form2: TForm2; begin Form2 := TForm2.Create(nil); Form2.BorderStyle := FMX.Forms.TFmxFormBorderStyle.bsNone; Form2.SetBounds(0,ClientWidth,ClientHeight); Winapi.Windows.SetParent(FmxHandleToHWND(Form2.Handle),Handle); Form2.Show; end;
在下面的截图中,Form1是VCL应用程序的主窗体(带碳样式),带有按钮的深灰色区域是嵌入式Firemonkey格式:
请注意,我没有处理父窗口的大小调整 – 它也应该调整emebedded窗体的大小,仿效alClient对齐.这种方法似乎有很多潜在的问题 – 我认为IDE有一个原因,不能让您轻松地将Firemonkey表单与VCL表单混合 – 它警告可能的“编译错误或意外行为”.