Mensaje    Asunto: Detener la ejecución de un programa Responder citando

Tengo un formulario desde el que, en funciónde las opciones elegidas por el usuario, se invocan a otros dos así:
Código:
if (fDesLis->CheckGroup1->Checked[0])
{
     Application->CreateForm(__classid(TfIndPer), &fIndPer);
     fIndPer->qIndPer->Preview();
     delete fIndPer;
}

if (fDesLis->CheckGroup1->Checked[1])
{
     Application->CreateForm(__classid(TfEtiPer), &fEtiPer);
     fEtiPer->qEtiPer->Preview();
     delete fEtiPer;
}

Y al completarse se limpia el formulario origen y se vuelve a mostrar con esto:
Código:
Panel11->Visible = false;
FormActivate(NULL);

El problema que tengo es que si el usuario marca las dos opciones en el CheckGroup, cuando termina de ejecutarse el primer if salta al código para relanzar el formulario padre y no se me ocurre como parar la ejecución hasta que completen los dos if. He probado con:
Código:
bool lPrueba = false;
for (int nItem = 0; nItem <Screen>FormCount; nItem ++)
{
     if (Screen->Forms[nItem]->Name == "fIndPer" || Screen->Forms[nItem]->Name == "fEtiPer")
          lPrueba = true;
}

if (!lPrueba)
{
     Panel11->Visible = false;
     FormActivate(NULL);
}

pero una vez que hace delete fIndPer se dispara el limpiado de la pantalla, aunque se sigue la ejecución del otro formulario fEtiPer.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)