Einzelnen Beitrag anzeigen

Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#1

VCL Form in Firemonkey Form einbetten

  Alt 4. Apr 2020, 12:18
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?

vclform.png

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;
Angehängte Dateien
Dateityp: zip VCLForm.zip (3,45 MB, 2x aufgerufen)
Andreas Lauß
Blog
  Mit Zitat antworten Zitat