Delphi XE2:可以在VCL应用程序中实例化一个FireMonkey表单?
在Delphi XE2之前,我们只有VCL才能创建GUI应用程序。 Delphi XE2规定:
我的应用程序是一个使用运行时包构建的纯VCL应用程序。所有VCL表单都存储在运行时程序包中。如果我要创建一个FireMonkey表单并存储在一个包中,我有没有机会在运行时在我的VCL应用程序中实例化这个FireMonkey表单?所以我可以享受FireMonkey的3D或HD效果。 解决方法
这是完全可能的,因为可以将FMX表单分配给面板。
详见this blog article:
其实FMXAdapter.pas代码很简单: procedure TPanel.Resize; begin inherited; ResizeForm(); end; procedure TPanel.ResizeForm; begin if Assigned(FForm) then Platform.SetWindowRect(FForm,RectF(BorderWidth,BorderWidth,ClientWidth + BorderWidth,ClientHeight + BorderWidth)); end; procedure TPanel.SetForm(const AForm: TCommonCustomForm); begin FForm := AForm; FForm.BorderIcons := []; FForm.BorderStyle := TFmxFormBorderStyle.bsNone; ResizeForm(); FForm.Visible := True; Winapi.Windows.SetParent(FmxHandleToHWND(FForm.Handle),Handle); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |