0

I create the tabsheets dynamically in RunTime and placed a Frame inside it using this code:

  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;

and now i want to knew if the tab are already created and just make it activate it when i click the same button

Hamza Benzaoui
  • 168
  • 3
  • 14

1 Answers1

3

Add a private variable of type TTabSheet to your class.

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

It will automatically be initialized to nil.

In the OnClick event handler, test whether the variable is nil. If not, create the tabsheet, otherwise, use the existing tabsheet.

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Assigned(FMyTabSheet) then
    FMyTabSheet := TTabSheet.Create(PageControl1);
    FMyTabSheet.PageControl := PageControl1;
    ... etc.
  end;
  PageControl1.ActivePage := FMyTabSheet;
end;
David Heffernan
  • 601,492
  • 42
  • 1,072
  • 1,490