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