본문 바로가기

파이어몽키

[FMX] 컨트롤(TPanel)등에 Form 넣기.

Delphi XE2의 FireMonkey에서는 

TForm이 TControl을 상속 받지 않아 TPanel등에 Embed 할 수 없습니다.

위 방식으로 구현된 많은 샘플코드들을 Firemonkey에서 사용하지 못해 당황하다.
아래와 같은 방법으로 해결(?: 꼼수)하여 공유합니다..
// AForm을 AParent에 Embed
procedure EmbedForm(AParent: TControl; AForm: TCustomForm);
begin
  while AForm.ChildrenCount > 0 do
    AForm.Children[0].Parent := AParent;
end;

정상적으로 말하면 Embed는 아니고 Form에 있는 컨트롤들을 Panel로
부모를 옮겨 버리는 방식입니다.
 
사용방법은
  EmbedForm(Panel1, TForm1.Create(Self));