Si vas a usar un PageControl, sólo podrás ver un frame al mismo tiempo, y tener 15 frames cargado en memoria (si son complejos) puede ser un derroche de recursos.
Lo que puedes hacer es crear el frame en tiempo de ejecución al cambiar de páginal (evento OnPageChanging si no recuerdo mal).
Puedes hacer uso de una variable global que indica el frame actual que se está mostrando en un momento, se utiliza para liberar el frame y cargar el nuevo. Ejemplito ¿no?
Código Delphi
[-]
uses Ufruno, Ufrdos;
Type FrameClass = class of TFrame;
type TForm = class (Tform) private
actual :TFrame;
frames : array [0..15] of TFrame;
procedure OpenFrame( idx : integer);
end;
procedure TForm.Create(..);
begin
frames[0] := Tfruno;
frames[1] := Tfrdos;
...
end;
Procedure TForm.PageControlChanging( oldIndex, NewIndex:integer);
begin
freeAndnil (actual);
actual := frames[NewIndex].Create(nil);
actual.Parent := PageControl.Pages[NewIndex];
actual.align := alclient;
actual.visible := true;
end;
procedure Tform.Close(...);
begin
freeandnil(actual);
end;
Saludos