如何检查 tabSheet 是否已经在 TPageControl 中创建

How to check if the tabSheet are already created in the TPageControl

我在 RunTime 中动态创建标签表并使用以下代码在其中放置一个框架:

  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;

现在我想知道该选项卡是否已创建,并在我单击同一按钮时将其激活

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

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;