| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Novato Invitado
|
Publicado: Dom 24 Ago, 2003 5:19 pm Asunto: Cerrar ventana mediante botón y simultanear 2 forms |
|
|
Hola a todos!!!
No llevo mucho tiempo y necesito saber que he de hacer para cerrar una ventana cuando pulso un botón, lo he intentado con close y no puedo así q tengo q cerrarla siempre dando a la crucecita de cerrar como es habitual...
Creo las ventanas como muestro a continuación:
| Código: | TFormEjemplo *FormEjemplo = new TFormEjemplo(Forms::Application);
FormEjemplo->ShowModal(); |
¿Que he de hacer para cerrarla?
A propósito, ¿se puede trabajar sobre las 2 ventanas a la vez?Es q cuando abro una en la anterior no puedo hacer nada hasta q no cierro la nueva...¿Es posible tener las 2 ventanas activas a la vez?
Gracias |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Dom 24 Ago, 2003 6:14 pm Asunto: |
|
|
Hola Novato! ;-)
Para eliminar una ventana que has creado dinámicamente debes usar delete. Es decir:
| Código: |
TFormEjemplo *FormEjemplo = new TFormEjemplo(this);
FormEjemplo->ShowModal();
delete FormEjemplo;
|
En cuanto a tu segunda pregunta la respuesta es sencilla. Al mostrar una ventana con ShowModal estás haciendo que todo el "peso" de la aplicación caiga sobre esa ventana y por tanto hasta que dicha ventana no se cierre el programa no tendrá acceso a otras pantallas. ¿Solución? Usar MDI o bien llamar a tu formulario de la siguiente forma:
| Código: |
TFormEjemplo *FormEjemplo = new TFormEjemplo(this);
FormEjemplo->Show();
|
Pero si te fijas ahora no puedes poner el delete porque de esta forma te mostraría el formulario e inmediatamente te lo borraría. En este caso debes poner en el OnClose del formulario:
Suerte y espero haber sido claro!!! |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Dom 24 Ago, 2003 6:20 pm Asunto: |
|
|
Perdón, creo que no respondí a lo que querias :_( Supón que tu FormEjemplo tiene dos botones: uno de cancelar y otro de aceptar. Bien, en el Onclick del botón cancelar pon:
| Código: |
ModalResult=mrCancel;
|
y en el Onclick del botón aceptar pon, por ejemplo:
| Código: |
ModalResult=mrOk;
|
De esta forma cuando pulses uno de los dos botones la ventana se cerrará cerrará y podrás discernir que operación realizar. Por ejemplo:
| Código: |
TFormEjemplo *FormEjemplo = new TFormEjemplo(Forms::Application);
switch(FormEjemplo->ShowModal())
{
case mrOk:
ShowMessage("diste a aceptar");
break;
case mrCancel:
ShowMessage("diste a cancelar");
break;
}
delete FormEjemplo
|
A ver si ahora he acertado ;) |
|
| Volver arriba |
|
 |
|