具有Firemonkey的Delphi Xe2:您可以使用非默认Windows非客户端绘画风格的非客户端区域吗?

前端之家收集整理的这篇文章主要介绍了具有Firemonkey的Delphi Xe2:您可以使用非默认Windows非客户端绘画风格的非客户端区域吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是使用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表单混合 – 它警告可能的“编译错误或意外行为”.

原文链接:https://www.f2er.com/delphi/102772.html

猜你在找的Delphi相关文章