Mam PageControl z jedną zakładką. Do niego można sobie dodawać dynamicznie nowe zakładki i je usuwać, do których przypisywana jest domyślna nazwa (np. "Nowa zakładka") z tym, że chcę by każda zakładka miała inną nazwę (poprzez dodanie na końcu nazwy, w nawiasie kolejnej cyfrki) - czyli np.: "Nowa zakładka", "Nowa zakładka (2)", "Nowa zakładka (3)".
Z tym, że jeśli ktoś usunie zakładkę, a potem doda nową to "uzupełni" się luka w numeracji.
Chodzi mi o coś podobnego jak np. w Windowsie gdzie tworząc nowe pliki (np. txt) przypisywana im jest domyślna nazwa z cyferką na końcu.
Wymyśliłem coś takiego, ale nie działa w 100% tak jak bym chciał:
var NewTab : TTabSheet;
i, j : byte;
s : String;
k : Boolean;
begin
s := 'Nowa zakładka';
k := False;
i := 0;
NewTab := TTabSheet.Create(Self);
if (PageControl1.ControlCount = 1) then NewTab.Caption := S else
begin
while not k do
begin
for j := 0 to PageControl1.ControlCount - 1 do
if PageControl1.Pages[i].Caption = s + ' (' + IntToStr(i) + ')' then
begin
Inc(i);
end
else
begin
NewTab.Caption := (s + ' (' + IntToStr(i) + ')');
K := True;
Inc(i);
end;
end;
end;
NewTab.PageControl := PageControl1;