加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

具有Firemonkey的Delphi Xe2:您可以使用非默认Windows非客户端

发布时间:2020-12-15 10:08:08 所属栏目:大数据 来源:网络整理
导读:以下是使用firemonkey Delphi XE2制作的delphi应用程序示例. 您可以看到,您可以使用Firemonkey中的视觉风格“风格书”来自定义窗口框架内大部分内容的外观.然而,Windows框架的外部是使用Windows决定的任何样式绘制的.现在如果我使用VCL而不是Firemonkey,我可
以下是使用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表单混合 – 它警告可能的“编译错误或意外行为”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读