Hallo,
ich versuche gerade ein
VCL-Form in ein FMX Form einzubetten. Dazu setze ich als Parent des
VCL-Forms das FMX-Form. Das geht auch. Nun möchte ich aber das Form in einem weiteren FMX-Form auf einem Panel einbetten. Die FMX-Controls werden auch angezeigt. Nur das
VCL-Form nicht. Anbei ist ein Demo-Projekt. Was mache ich falsch?
Delphi-Quellcode:
procedure TfrmMain.btnEmbeddFormClick(Sender: TObject);
var
ContainerForm: TfrmContainer;
begin
ContainerForm := TfrmContainer.Create(Self);
ContainerForm.LoadContent;
ContainerForm.Show;
Self.EmbeddForm(pnlContainer, ContainerForm);
end;
procedure TfrmMain.EmbeddForm(AParent: TControl;
AForm: TCustomForm);
begin
while AForm.ChildrenCount > 0
do
AForm.Children[0].Parent := AParent;
end;
...
procedure TfrmContainer.LoadContent;
var
FormHandle: HWND;
ContentForm: TfrmContainerContent;
begin
ContentForm := TfrmContainerContent.Create(Self);
ContentForm.Show;
FormHandle := FmxHandleToHWND(Self.Handle);
WinApi.Windows.SetParent(ContentForm.Handle, FormHandle);
end;