-->

动态标签页添加到页面的控制和嵌入表单?(Dynamically add tab sheets to

2019-07-31 07:46发布

我正在它由一个页面控制的模块上。 默认情况下,该网页控制( TPageControl )不应该有任何的标签薄片( TTabSheet ),但在初始化时,应该动态地将这些网页,并嵌入在其内部的一种形式。

这个问题带有知道如何插入标签页到页面控制。 如何创建呢? 一旦它的创建,伴随着每一个内部的形式,我怎么遍历它们破坏形式?

Answer 1:

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 ,该父将释放本身时照顾他们的释放。



Answer 2:

大卫·赫弗南是正确的。

Form2.Parent := TabSheet;
Form2.Show;

此代码只是意味着窗体2的父标签页,而不是它的主人。

您可以创建这样的形式:

Form2 := TForm2.Create(nil);

然后自己释放它。 或者你可以创建一个这样的形式:

Form2 := TForm2.Create(Form1);

Form1的是窗体2的拥有者,而当自己被释放它会自动释放窗体2。



文章来源: Dynamically add tab sheets to page control and embed a form?