¡Hola a tod@s!A ver si me explico bien:
Tengo un formulario para visualizar los mensajes al usuario, en vez de hacerlo con MessageDlg como hasta ahora.
Al ocultar este formulario, le paso a la propiedad ModalResult un valor u otro en función del botón presionado (Si, No, Aceptar, ...). Hasta aquí todo bien.
El problema es que, al cerrar la aplicación, le hago dos preguntas seguidas al usuario. Si éste responde que NO a la primera pueden pasar dos cosas:
- Si ha seleccionado NO con el ratón, aparece la segunda pregunta.
- Si ha seleccionado NO presionando la tecla 'N' se salta la segunda pregunta.
Haciendo un seguimiento no consigo dar con la solución. Dentro de la función que llama al formulario de los mensajes he puesto como primera instrucción "frmMensajes->ModalResult = 0;" pero se pasa esta instrucción por el forro de los coj... (perdón, pero es que estoy muy quemado. LLevo casi 4 horas seguidas con ésto y todavía no he sacado nada en claro).
NOTA IMPORTANTE: De fijo que lo siguiente tiene algo que ver con el problema pero no se como relacionarlo:
Hace no mucho pregunté en el foro como podía capturar la tecla TAB y _Leo me pasó una solución muy buena pero que, como no domino la API de Windows, solo he podido copiar y pegar. (Por cierto, va como la seda)
Dicha solución consiste en poner una función en la parte "private" que captura los mensajes de teclado y pregunta por la tecla TAB. Tras exaustivos seguimientos de mi probema he podido comprobar que, tras la primera respuesta al primer mensaje, luego pasa por esta función y todo lo que no sea tecla TAB lo despacha que de gusto. Por supesto, esto incluye la primera respuesta, pero despues de haberla dado. A ver si me aclaro, yo creo que lo que pasa es que no hace la segunda llamada a la función para visualizar los mensajes porque todavía tiene guardado el ModalResult del anterior mensaje (que vale mrNo). Como solo entra en un IF si responden al segundo mensaje distinto de NO, no entra y no se ejecuta bien la aplicación.
Ahora bien, ¿Cómo consigo que haga la segunda pregunta? ¿Cómo hago para que ModalResult pierda su valor?
No se si me he explicado bien, eso si, lo he hecho lo mejor que he podido.
En fin, solo por haber leido esta parrafada ya contais con mi agradecimiento. A ver si hay suerte. 