0

我在 RunTime 中动态创建标签页,并使用以下代码在其中放置了一个 Frame:

  procedure TForm1.Button2Click(Sender: TObject);
 var
  TabSheetG: TTabSheet;
begin
  TabSheetG := TTabSheet.Create(PageControl1);
  TabSheetG.Caption := 'Tab Sheet green  ';
  TabSheetG.PageControl := PageControl1;
  Frame3 := TFrame3.Create(nil);
  Frame3.Parent := TabSheetG;
  Frame3.Show;
end;

现在我想知道该选项卡是否已经创建并且当我单击同一个按钮时让它激活它

4

1 回答 1

3

将类型的私有变量添加TTabSheet到您的类。

type
  TForm1 = class(TForm)
  ....
  private
    FMyTabSheet: TTabSheet;
  end;

它将自动初始化为nil.

OnClick事件处理程序中,测试变量是否为nil. 如果没有,则创建标签页,否则,使用现有的标签页。

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Assigned(FMyTabSheet) then
    FMyTabSheet := TTabSheet.Create(PageControl1);
    FMyTabSheet.PageControl := PageControl1;
    ... etc.
  end;
  PageControl1.ActivePage := FMyTabSheet;
end;
于 2015-10-29T12:43:22.450 回答