Multi-Device窗口融合的问题

Isdxsc 2023-03-09 10:28:03

在进行多设备开发时,如何将窗口B融合到窗口A的某个控件C内呢?Vcl下的很方便,设置窗口B的Parent为控件C就行了。

但在多设备模式下,设置了也是独立显示,代码如下:

unit UnitParent;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls;

type
  TMultiParentForm = class(TForm)
    CornerButton1: TCornerButton;
    CornerButton2: TCornerButton;
    Panel1: TPanel;
    procedure CornerButton1Click(Sender: TObject);
    procedure CornerButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MultiParentForm: TMultiParentForm;

implementation

uses UnitChild;

{$R *.fmx}

procedure TMultiParentForm.CornerButton1Click(Sender: TObject);
begin
  // 独立显示
  if not Assigned(MultiChildForm) then
    MultiChildForm := TMultiChildForm.Create(nil);

  MultiChildForm.Show;
end;

procedure TMultiParentForm.CornerButton2Click(Sender: TObject);
begin
  // 融合显示
  if not Assigned(MultiChildForm) then
    MultiChildForm := TMultiChildForm.Create(Panel1);

  MultiChildForm.Parent := Panel1;
  MultiChildForm.Show;
end;

end.
unit UnitChild;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.Edit, FMX.Objects;

type
  TMultiChildForm = class(TForm)
    Rectangle1: TRectangle;
    Edit1: TEdit;
    StyleBook1: TStyleBook;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MultiChildForm: TMultiChildForm;

implementation

{$R *.fmx}

end.

显示效果图:

不论按那个按钮,显示都是一样的,难道FMX不支持这种窗口融合的方式? 

 

...全文
成就一亿技术人!
拼手气红包 30.00元
834 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

窗口边框去掉,并设置为半透明~

看那山瞧那水 2023-03-09
  • 打赏
  • 举报
回复

Frame无法使用StyleBook?你的意思是背景吗?
那就加个Rectangle做背景,一个StyleBook是整个工程共享的

Isdxsc 2023-03-09
  • 举报
回复
@看那山瞧那水 Form有属性设置StyleBook,但是Frame没有,不是背景的问题,主要针对输入框、按钮等控件的美化。
tanqth 2023-03-10
  • 举报
回复
@Isdxsc 输入框、按钮应该是可以直接选择使用到StyleBook里提供的样式吧。
看那山瞧那水 2023-03-10
  • 举报
回复
@Isdxsc tanqth 说的对啊,每个控件都可以设置Style,不理解你的情况......
1条回复
tanqth 2023-03-09
  • 打赏
  • 举报
回复

用FRAME吧。

Isdxsc 2023-03-09
  • 举报
回复
@tanqth 用Frame是可以融合,但是无法使用StyleBook等功能,无法对控件进行一些美化

5,913

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧