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

2012.03.23 12:45
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));


저작자 표시 비영리
신고

험프리.김현수 파이어몽키

  1. Blog Icon
    이회원

    panel1에 생성을 한 폼을 어떻게 close 시켜야 하나요? 그냥 free해도 남아 있던데.