我正在它由一个页面控制的模块上。 默认情况下,该网页控制( TPageControl
)不应该有任何的标签薄片( TTabSheet
),但在初始化时,应该动态地将这些网页,并嵌入在其内部的一种形式。
这个问题带有知道如何插入标签页到页面控制。 如何创建呢? 一旦它的创建,伴随着每一个内部的形式,我怎么遍历它们破坏形式?
我正在它由一个页面控制的模块上。 默认情况下,该网页控制( TPageControl
)不应该有任何的标签薄片( TTabSheet
),但在初始化时,应该动态地将这些网页,并嵌入在其内部的一种形式。
这个问题带有知道如何插入标签页到页面控制。 如何创建呢? 一旦它的创建,伴随着每一个内部的形式,我怎么遍历它们破坏形式?
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
,该父将释放本身时照顾他们的释放。
大卫·赫弗南是正确的。
Form2.Parent := TabSheet;
Form2.Show;
此代码只是意味着窗体2的父标签页,而不是它的主人。
您可以创建这样的形式:
Form2 := TForm2.Create(nil);
然后自己释放它。 或者你可以创建一个这样的形式:
Form2 := TForm2.Create(Form1);
Form1的是窗体2的拥有者,而当自己被释放它会自动释放窗体2。