在delphi Form窗体的panel 中嵌入 Fmx窗体

这篇具有很好参考价值的文章主要介绍了在delphi Form窗体的panel 中嵌入 Fmx窗体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.创建2个工程,一个是window application ,一个bpl 工程(multi-device Forml),创建方式见:

在delphi Form窗体调用Fmx窗体_zjg076000的博客-CSDN博客(这里不再重复)

在delphi Form窗体的panel 中嵌入 Fmx窗体

2.调整一下windows应用的界面,放入panel 来嵌入fmx窗体

在delphi Form窗体的panel 中嵌入 Fmx窗体

3.编写代码

 文章来源地址https://www.toymoban.com/news/detail-484043.html

unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,testfmxform, Vcl.ExtCtrls;

type
  TForm2 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Panel2: TPanel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private

  public
       FmxForm: Tfrmtestfrmform;
      FMHWnd: HWND;
  end;

var
  Form2: TForm2;

implementation
    uses FMX.Platform.Win,FMX.Forms;
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
     frmtestfrmform:=tfrmtestfrmform.Create(self);
     frmtestfrmform.ShowModal;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin

  FmxForm := Tfrmtestfrmform.Create(panel2);
  FmxForm.Left :=0;
  FmxForm.Top := 0;
  FMHWnd := FmxHandleToHWND(FmxForm.Handle);

 SetWindowLong(FMHWnd, GWL_STYLE, GetWindowLong(FMHwnd, GWL_STYLE) or WS_CHILD);

   Winapi.Windows.SetParent(WindowHandleToPlatform(FmxForm.Handle).Wnd, Panel2.Handle);
   MoveWindow(WindowHandleToPlatform(FmxForm.Handle).Wnd, 0, 0, Round(Panel2.Width), Round(Panel2.Height), True);

   FmxForm.WindowState := wsMaximized;
   FmxForm.Show;
   FmxForm.EndUpdate;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   FmxForm.Close;
end;

procedure TForm2.FormResize(Sender: TObject);
begin
     if FmxForm <> nil then
      MoveWindow(WindowHandleToPlatform(FmxForm.Handle).Wnd, 0, 0, Round(Panel2.Width), Round(Panel2.Height), True);
end;

end.

 4.运行效果

在delphi Form窗体的panel 中嵌入 Fmx窗体

 

到了这里,关于在delphi Form窗体的panel 中嵌入 Fmx窗体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# Form窗体添加启动画面

      如果要使你的window软件界面显得牛逼点,就来个驱动图片加载画面吧,同时在开机画面做一些基本的注册识别、进程读取、数据加载等常规操作。这里就小结一下我使用的常规方法。   首先,找到您想使用的开机图片,尽量大场景或logo图片,可以达到让人耳目一新的

    2024年02月15日
    浏览(25)
  • QT实现按钮开关Form窗体的效果

    实现效果叙述如下: MainWindow 中的按钮实现 Form 窗体的开关, Form 窗体的 关闭 按钮禁用掉,只允许使用窗体按钮进行,且关闭 MainWindow 按钮时 Form 窗体随之关闭。 注意: 要想实现关闭 MainWindow 按钮时 Form 窗体随之关闭, Form 窗体的 close() 在 MainWindow 的析构函数中无法实现,

    2024年02月15日
    浏览(27)
  • 创建一个简单的Qt工程

    1.打开QtCreator进行如下选择。(开软去官网下载即可,注册邮箱可以断网跳过) 第一步: 选择Application     第二步:这里文件名称和路径都不要有中文 第三步:选择编译模式 点击下一步 第四步:选择 Widget点击下一步   第五步:运行工程,判断是否创建成功 课堂小记: 1. 析

    2024年02月03日
    浏览(22)
  • SoapUI——创建一个SOAP工程

    本章简单介绍SOAP工程包括创建工程,介绍面板区域功能。 目录 前言 1 创建工程 1.1 SOAP 工程 1.2 REST 工程 2 引入工程 SoapUI工程在导航树的根节点下,Soap工程包括功能测试、性能测试和仿真。 SoapUI的工程

    2024年02月05日
    浏览(31)
  • 痞子衡嵌入式:使用恩智浦GUI Guider快速创建全新LCD屏示例工程的步骤

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是 使用恩智浦GUI Guider快速创建全新LCD屏示例工程的步骤 。 在痞子衡旧文 《在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤》 里,痞子衡介绍了在官方 SDK 裸机驱动 elcdif 示例工程基础上做修改以支持一

    2024年03月13日
    浏览(37)
  • 【STM32】STM32CubeMX创建第一个工程

    STM32CubeMX是STM32Cube工具家族中的一员,从MCU/MPU选型,引脚配置,系统时钟以及外设时钟设置,到外设参数配置,中间件参数配置,它给STM32开发者们提供了一种简单,方便,并且直观的方式来完成这些工作。所有的配置完成后,它还可以根据所选的IDE生成对应的工程和初始化

    2024年04月09日
    浏览(78)
  • 创建React Native的第一个hello world工程

    需要安装好node、npm环境 如果之前没有安装过 react-native-cli 脚手架的,可以按照下述步骤直接安装。如果已经安装过的,但是在使用这个脚手架初始化工程的时候遇到下述报错的话 也可以先直接卸载 正常安装过程: 安装 react-native-cli 安装 react-native 安装完成之后,可以用脚手

    2024年02月07日
    浏览(35)
  • 使用AURIX Development Studio创建一个新的工程

    Step 1 下载并安装AURIX Development Studio,打开软件 Step 2 连接单片机及下载器,由于没有防呆接口,注意单片机处连接线的正确性,本文使用逐飞科技提供的TC264芯片,连接为红线对应TMS,3V3引脚。如果连接正确,单片机扩展板上的几个LED灯为闪烁状态,表明连接正确 Step 3 打开

    2024年01月23日
    浏览(27)
  • C#winform 点叉叉按钮关闭一form窗体应用后,后台进程仍在运行的解决办法

    如果要解决“C#winform 点叉叉按钮关闭一form窗体应用后,后台进程仍在运行”的问题,可以直接点击目录跳转到3.4关闭窗体的多种方法。 前面为记录遇到该问题的一些过程。 之前用C#做了一个日志备份的窗体应用程序,最近把这个程序完善了一下,在窗体上显示了配置文件中

    2023年04月26日
    浏览(34)
  • OCCT教程二:在visual studio上创建一个occt工程

    上一篇博客讲述如何在windows下使用MSVC对occt进行编译,这一篇演示如何创建简单的OCCT工程. 首先打开visual studio,创建一个C++空项目,并且随便起一个名称,例如Project1  需要两点注意:1.在资源文件中添加一个main.cpp。                           2.在解决方案平台中选择X6

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包