Well that's strange… I'm using dynamically created sTabSheets quite often, but couldn't reproduce the problem you described. The one difference in my code from listed above is:
procedure TForm1.Button2Click(Sender: TObject); begin with TsTabSheet.Create(self) do begin Caption:='Page '+inttostr(sPageControl1.PageCount); PageControl:=sPageControl1; Visible:=True; end; sPageControl1.ActivePageIndex:=sPageControl1.PageCount-1; end;
And this works too, just make it visible after setting its PageControl.