我试图在Scrollbox中嵌入一个表单:

procedure TfrmMain.FormCreate(Sender: TObject);
var
  Control:TControlView;
begin
  Control := TControlView.Create(Self);
  Control.BorderIcons := [];
  Control.parent := ListControls;
  Control.width := 800;
  ListControls.AddObject(Control);
  Control.Visible:= True;
end;

但是,该窗体显示在tfrmMain的后面和窗体的边框之外。

我的想法是将一个窗体放在一个面板内,两个都放在滚动框内。每个表单代表具有多个控件和内容的复杂项(不使用ListBox的原因?Firemonkey控件的创建远比简单地将其嵌入表单要难得多)

最佳答案

secret 在于您如何设计 child 的形式。

您需要将控件创建为容器,例如TLayout(无样式),TRectangle(基本样式)或TPanel。我会选择TLayout。确定您的容器的名称,为方便起见,说“Container”。现在创建您的子窗体,只需将“容器父项”分配给您的父对象。

因此,从上面的代码中(我假设TControlView是您的子窗体):

procedure TfrmMain.FormCreate(Sender: TObject);
var
  Control:TControlView;
begin
  Control := TControlView.Create(Self);
  Control.Container.parent := ListControls;
  Control.Container.width := 800;
end;

10-08 17:15