我正在研究一个由页面控件组成的模块。默认情况下,此页面控件(TPageControl
)不应包含任何选项卡表(TTabSheet
),但在初始化时,它应动态插入这些页面并在其中嵌入表单。
问题在于知道如何将标签页插入页面控件。我该如何创建呢?一旦它被创建,连同每个窗体内的表格,我如何迭代它们来销毁表格?
答案 0 :(得分:26)
的 1。如何动态创建标签页?
procedure TForm1.Button1Click(Sender: TObject);
var
TabSheet: TTabSheet;
begin
TabSheet := TTabSheet.Create(PageControl1);
TabSheet.Caption := 'New Tab Sheet';
TabSheet.PageControl := PageControl1;
end;
的 2。如何在表格中嵌入表单?
要在标签页内插入表单,只需使用父更改:
Form2.Parent := TabSheet;
Form2.Show;
第3。在销毁时,我是否需要手动释放嵌入到标签页中的表单?
不,它足以释放标签页。如果表单有一个标签页,或者更确切地说,TWinControl
为Parent
,那么父母将在释放自己时将其释放。
答案 1 :(得分:2)
David Heffernan是对的。
Form2.Parent := TabSheet;
Form2.Show;
此代码仅表示Form2的父级是TabSheet,而不是它的所有者。
您可以像这样创建表单:
Form2 := TForm2.Create(nil);
然后自己释放它。 或者你可以创建一个这样的表格:
Form2 := TForm2.Create(Form1);
Form1是Form2的所有者,当它自己被释放时,它将自动释放Form2。