Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2003
carlosmari carlosmari is offline
Miembro
 
Registrado: jul 2003
Posts: 34
Poder: 0
carlosmari Va por buen camino
Como anular el ModalResult de un botón ?

Hola !!

Tengo un formulario con los clásicos botones 'Aceptar' y 'Cancelar'. En el botón Aceptar tengo seteado el ModalResult como 'mrOK'
Estoy realizando unas validaciones en este botón y de estar todo ok recién quiero que continúe, de lo contrario quiero que retorne donde estaba antes, pero lo que hace es continuar su salida del formulario.
Estoy necesitando que sea mrOk por un tratamiento especial que utilizo en onCloseQuery.

Ejemplo de mi código en el botón Aceptar con modalResult en mrOk
-------------------------------
if valida() = false then
Exit; // quiero que no vaya al onCloseQuery ... pero no me hace caso

... sigue mi código y se va al onCloseQuery
-------------------------------


¿Cómo hago para que me retorne al form sin que sigue su acción normal de irse al onCloseQuery?

Gracias por la ayuda que puedan brindarme.
__________________
Carlos Marí
  #2  
Antiguo 13-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Lo que hago normalmente en estos casos (no es la única solución), es poner en la propiedad ModalResult del botón mrNone, y cuando la validación es correcta, desde el mismo código asigno el ModalResult mrOk.
Código:
if valida then
  ModalResult := mrOk;
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
  #3  
Antiguo 13-11-2003
carlosmari carlosmari is offline
Miembro
 
Registrado: jul 2003
Posts: 34
Poder: 0
carlosmari Va por buen camino
probé lo que tu me dices funcionó, solo que tiene un problema ... tengo que apretar dos veces el botón Aceptar para que salga.

Supongo que la primera vez como está en mrNone no asume que tiene que salir y la segunda vez, como le asigné en el código del botón el mrOk, ahora puede salir.

gracias por cualquier sugerencia !!
__________________
Carlos Marí
  #4  
Antiguo 13-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Me parece que el problema esta en tu función "Valida", si cuando termina de ejecutarse el evento, el ModalResult del form <> mrNone, se cierra el form.
Te recomendaría que lo sigas paso a paso a ver si verdaderamente pasa siempre por la línea: ModalResult := mrOk;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
  #5  
Antiguo 13-11-2003
carlosmari carlosmari is offline
Miembro
 
Registrado: jul 2003
Posts: 34
Poder: 0
carlosmari Va por buen camino
lo he seguido paso a paso y efectivamente pasa por la asignación que le hice: btAceptar.ModalResult := mrOk ...
es más, eliminé la función y si o si pasa por esta asignación e igualmente tengo que apretar dos veces el botón Aceptar para que finalmente salga
__________________
Carlos Marí
  #6  
Antiguo 13-11-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cierro el hilo por no pertenecer a este foro y lo muevo al foro Varios. Seguirlo allí

Perdón por las molestias
Tema Cerrado



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:39:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi