Add controls to TabbedNotebook

Posted in Components

All components in Delphi are objects, so Create and Destroy have to be used for creating and destroying of the component at runtime. A problem with TTabbedNotebook in a correct placement of control on appropriate page. The process of adding controls to a TNotebook is almost exactly the same as that for TTabbedNotebook - only the page class type is TPage instead of TTabPage. So we can do:

uses Tabnotbk;
...
procedure TForm1.Button1Click(Sender: TObject);
var
  TabPage: TTabPage;
  Button: TButton;
begin
  with TabbedNotebook1 do
    TabPage:=TTabPage(Pages.Objects[PageIndex]);
    Button:=TButton.Create(TabPage);
  try
    with Button do begin
      Parent:=TabPage;
      Left:=Random(TabPage.ClientWidth-Width);
      Top:=Random(TabPage.ClientHeight-Height);
    end;
  except
    Button.Free;
  end;
end;