在delphi Form窗体的panel 中嵌入 Fmx窗体
1.创建2个工程,一个是window application ,一个bpl 工程(multi-device Forml),创建方式见:
在delphi Form窗体调用Fmx窗体_zjg076000的博客-CSDN博客(这里不再重复)
2.调整一下windows应用的界面,放入panel 来嵌入fmx窗体
3.编写代码
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);
privatepublic
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);
beginFmxForm := 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窗体相关推荐
- 如何在Panel中嵌入子窗体
文章目录 1 如何在Panel中嵌入子窗体 1.1 在Panel中嵌入子窗体的方法 1 如何在Panel中嵌入子窗体 1.1 在Panel中嵌入子窗体的方法 首先看嵌入前的效果: 点击按钮" ...
- c# 火狐浏览器怎么嵌入窗体中_C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子...
C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...
- C#将子窗体填充到父窗体的panel中
这里此窗体为lvlv_CauseForm 窗体,new一个窗体对象cf后,进行填充,代码如下: lvlv_CauseForm cf = new lvlv_CauseForm(); cf.TopLeve ...
- C#在控制台工程中嵌入winform窗体
关注公众号 风色年代(itfantasycc) 300G .Net 资料等你拿! 用C#编写一些后台小工具时,我们往往希望既能使用winform界面组件,又能有一个控制台窗口用于显示日志信息,可以用 ...
- WinForm实现通用的窗体基于屏幕中间或父窗体中间
一.实现效果 ①窗体居于屏幕中间 ②子窗体居于父窗体中间 二.核心代码 /*** * Title:"三维可视化" 项目 * 主题:[视图层]窗体基础操作 * Description ...
- c# panel里面嵌入窗体
现有一个父窗体name是Parent,子窗体name是Son,要让Son嵌入在Parent的Panel内,则父窗体的初始加载代码如下: private void Parent_Load(object ...
- C#中主窗体Panel中加载其他多个窗体Panel控件
今天在技术群里,笔者遇到一个这样的问题,"有客户想让两个Form窗体的内容放到一个Form窗体中,但是两个窗体的内容超出主窗体的大小",为了解决这个问题,笔者的想法是"采 ...
- 在delphi Form窗体调用Fmx窗体
在delphi 程序开发中Firemonkey技术允许开发人员创建具有快速的本地性能.动画和图像效果,是跨平台的一个利器.可以利用它来自定义图片和动画效果,让我们的应用更漂亮美观.在windows 应 ...
- Delphi Form Designer (窗体设计器)之四
对齐组件 不管Snap to Grid选项是否开着,在安放完组件后有时需要对齐.对齐组件是指沿某组件的边对齐几个组件,把组件放在窗体中央,或依一定距离间隔组件. 有两种方式对齐组件: 使用Alignm ...
最新文章
- “IIS配置401错误”完美解决方案
- java程序员从笨鸟到菜鸟之(七)一—java数据库操作
- TF之GD:基于tensorflow框架搭建GD算法利用Fashion-MNIST数据集实现多分类预测(92%)
- Luogu P1091 合唱队形
- 多个mysql 环境_关于几个MySQL环境问题的对比
- PAT Basic 1002
- mac安装python环境教程_python mac下安装虚拟环境的图文教程
- Silverlight:CreateFromXAMLDownloader
- 利用Nginx对不同的域名进行解析
- struts启动过滤器异常_SpringCloud Gateway高阶之全局异常处理
- 谈谈YOLOv2做了哪些改进
- mysql数据库如果从C盘迁移到D盘
- JAVA基础(注释,关键字与标识符)
- 吐血整理 | 肝翻 Linux 同步管理所有知识点
- redis--ServiceStack
- office启动出现oxc0000142的问题的解决方案
- 游戏辅助小助手框架构想
- 【报错】unknown error: DevToolsActivePort file doesn‘t exis
- iftop工具(网卡流量监控软件)的使用
- CVPR ECCV ICCV 计算机视觉顶会论文下载
热门文章
- 秒懂:JMeter 使用 http 长连接
- PICT理论学习总结
- 【Vulnhub】之Deathnote
- 机器人编程实践-ROS2基础与应用-
- 鸿蒙掉符6人队掉的机,《诛仙3》灌注符怎么得?装备各部件灌注符获取方式一览...
- b64_c3VuJTIwYm95 #01数据结构练习一
- 在PHP中调用Python并获取运行结果
- python queue 调试_Python:Queue.Empty异常处理
- 云和恩墨2018恭贺新春!
- 2017android 最强旗舰,2017年哪款手机续航表现最强劲?2017旗舰手机续航排行榜出炉...