Hola.
En realidad no comprendo la situación pero por el título, parece que tenés dificultad para crear frames dinámicamente.
Te pongo un ejemplo con un
TPageControl, tres
TTabSheet y tres
TFrames que se crean en ejecución a fín de darte una idea de como podrías hacerlo. En el evento
OnChage del
TPageControl se van creando los frames correspondientes a cada
TabSheet y en el evento
OnExit de cada TabSheet se eliminan (deberás asignar el evento
TabSheetExit a los 3 TabSheets).
Código:
...
TFrame *FR1, *FR2, *FR3;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
PageControl1->ActivePageIndex = 0;
PageControl1Change(Sender);
}
void __fastcall TForm1::PageControl1Change(TObject *Sender)
{
switch (PageControl1->ActivePageIndex) {
case 0:{
FR1 = new TFrame(this);
FR1->Color = clHighlight;
FR1->Align = alClient;
TabSheet1->InsertControl(FR1);
}; break;
case 1:{
FR2 = new TFrame(this);
FR2->Color = clSilver;
FR2->Align = alClient;
TabSheet2->InsertControl(FR2);
}; break;
case 2:{
FR3 = new TFrame(this);
FR3->Color = clMoneyGreen;
FR3->Align = alClient;
TabSheet3->InsertControl(FR3);
}; break;
}
}
void __fastcall TForm1::TabSheetExit(TObject *Sender)
{
switch (((TPageControl *)Sender)->ActivePageIndex) {
case 1: delete FR1; break;
case 2: delete FR2; break;
case 3: delete FR3; break;
}
}
...
Saludos.