在FMX ScalingLayout中嵌入VCL表单

时间:2014-09-20 08:04:25

标签: delphi firemonkey vcl delphi-xe5

我正在尝试以FMX格式嵌入VCL表单,其中FMX表单包含设置为alClient的TScalingLayout,以便在表单调整大小时缩放整个内容。

我发现在FMX表单中首先嵌入VCL表单的唯一方法是这样:

  VCLForm.ParentWindow := WindowHandleToPlatform(FMXForm.Handle).Wnd;
  VCLForm.Show;

不幸的是,这让我无法将VCLForm直接添加到我的TScalingLayout,因此当我自然调整FMX表单大小时,嵌入式VCL表单无法扩展。

我认为如果我只能将VCL表单直接放到表单上,我可以使用另一个FMX表单作为容器并将此容器表单嵌入到我的ScalingLayout中,但因为我只能"嵌入"通过移动所有孩子,我的VCL表格不会被移动。

有没有办法以一种扩展其内容的方式嵌入我的VCL表单,就像我的ScalingLayout上的所有FMX控件都被缩放一样?

1 个答案:

答案 0 :(得分:1)

不,不可能。 Firemonkey可以扩展其组件的原因是因为Firemonkey从头开始制作和绘制它们。

大多数VCL控件都是由程序调用的内置Windows操作系统组件构成的。而那些没有任何扩展能力的人。它们不是由VCL绘制的,VCL告诉Windows绘制它们。因此,如果FMX没有绘制它们,它就无法缩放它们。