Как проверить, созданы ли tabSheet в 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;

и теперь я хочу знать, если вкладка уже создана и просто активировать ее, когда я нажимаю ту же кнопку

1 ответ

Решение

Добавить приватную переменную типа 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;
Другие вопросы по тегам