Delphi で PageControl に Frame を動的に追加

 Delphi で PageControl に Frame を動的に追加

TMainForm に置いた PageControl1 に TMyFrame というフレームを追加する例
  1. function TMainForm.AddTabSheet: TMyFrame;  
  2. var TabSheet: TTabSheet;  
  3.     MyFrame: TMyFrame;  
  4. begin  
  5.     TabSheet := TTabSheet.Create(Self);  
  6.     TabSheet.PageControl := PageControl1;  
  7.   
  8.     MyFrame := TMyFrame.Create(TabSheet);  
  9.     MyFrame.Parent := TabSheet;  
  10.     MyFrame.Align := alClient;  
  11.       
  12.     TabSheet.Tag := NativeInt(MyFrame);  
  13.     // ↑ MyFrame := TMyFrame(PageControl.Pages[0].Tag)で呼び出せる  
  14.   
  15.     PageControl1.ActivePage := TabSheet;  
  16.   
  17.     Result := MyFrame;  
  18. end;  

流れは
タブシートを生成して、ページコントロールに関連付ける(PageControl := )
フレームを生成して、タブシートに関連付ける(Parent := )

タブシートの Tag に生成したフレームを保存しておけば、タブシート→フレームが呼び出しやすくなります

コメント