I\'m working on a module which consists of a page control. By default, this page control (TPageControl
) shouldn\'t have any tab sheets (TTabSheet
), but
1. How to dynamically create a tab sheet ?
procedure TForm1.Button1Click(Sender: TObject);
var
TabSheet: TTabSheet;
begin
TabSheet := TTabSheet.Create(PageControl1);
TabSheet.Caption := 'New Tab Sheet';
TabSheet.PageControl := PageControl1;
end;
2. How to embed a form inside of a tab sheet ?
To insert a form inside of a tab sheet use simply a parent change:
Form2.Parent := TabSheet;
Form2.Show;
3. Will I need to manually free the forms embedded into a tab sheet when destroying it ?
No, it is enough to free a tab sheet. In case when the forms will have a tab sheet, or to be more precise, the TWinControl as their Parent, that parent will take care of their release when freeing itself.
David Heffernan is right.
Form2.Parent := TabSheet;
Form2.Show;
This code just means Form2's parent is TabSheet, not it's owner.
You can create the form like this:
Form2 := TForm2.Create(nil);
and then free it by yourself. or you can create a form like this:
Form2 := TForm2.Create(Form1);
Form1 is the owner of Form2, and it will automatically free Form2 when itself is freed.