Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #13  
Antiguo 13-11-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
carlosmari comentó:
Roman:

Al principio había puesto la validación en el onCloseQuery. El problema lo tenía cuando se producía un error de validación pero igualmente quería abandonar el form (por que me arrepentí y no quiero seguir con la carga), es ahí donde quedaba atrapado por los erros de validación y no podía salir de ninguna manera.
Sigo sin entender.

Por error de validación te refieres a que se produce una excepción en la función valida() o simplemente a que regresa false?

De cualquier forma si la validación falla, es decir, no se cumplen las condiciones para aceptar los cambios entonces basta que te regrese al formulario y el usuario oprima el botón Cancelar en lugar de Aceptar. La estructura de prácticamente cualquier evento OnCloseQuery que hago es:

Código:
if ModalResult = mrOk then
begin
  { Hacer validaciones }
end;
De hecho casi nunca hago uso del parámetro CanClose-- y no digo que esta sea la forma correcta de manejar el evento --, en su lugar, si algo falla en la validación lanzo una excepción ya que normalmente me interesa no sólo impedir que se cierre el formulario sino además situar al usario en el control que contiene algún dato incorrecto:

Código:
if ValorDelControlIncorrecto then
begin
  Control.SetFocus;
  raise Exception.Create('Usted debe acostumbrarse a poner valores correctos');
end;
Cita:
carlosmari comentó:
Ej:

if valida() = false then
canClose = false
else
canClose = true;

[/b]
Por cierto, este código quedaría más claro así:

Código:
canClose := valida();
// Saludos
Responder Con Cita
 



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 13:51:03.


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