Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 05 Feb, 2013 8:53 am Asunto: Detener la ejecución de un programa |
|
|
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) |
|