Ir al contenido


Foto

ventana de alerta o aviso continua ¡¡??


  • Por favor identifícate para responder
1 respuesta en este tema

#1 FGarcia

FGarcia

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 687 mensajes
  • LocationMéxico

Escrito 14 septiembre 2009 - 06:46

Ya regrese por aqui, tengo este codigo:



delphi
  1. procedure TForm1.btValidarClick(Sender: TObject);
  2. begin
  3.   if VerificaDatos then
  4.     begin
  5.       if DatoValido then
  6.         GuardaDatoEntrada
  7.       else
  8.         showmessage('¡Lo que sea, ESPERE!');
  9.     end;
  10. end;



Entonces esto es asi:
1 Pulso el boton de Validar
2 Se cumple la primera condicion
3 Se cumple la segunda condicion
4 Se guarda el dato
5 Termina la ejecucion

pero que tal si:
1 Pulso el boton de Validar
2 Se cumple la primera condicion
3 NO Se cumple la segunda condicion
4 Aparece la ventana de alerta
5 Termina la ejecucion

Hasta aqui el procedimiento y su ejecucion es lo normal. Debo de volver a pulsar el boton de validar para volver a verificar y si se cumplen todas las condiciones terminar la ejecucion o si no nuevamente empezar. Ahora bien, hace tiempo yo vi un programa hecho en Clipper en el que aparece la ventana de alerta y al pulsar el boton de Aceptar el programa "automaticamente" volvia al inicio y mientras el procedimiento no se cumpla seguia el mensaje de alerta y el operador solo pulsa el boton de Aceptar del mensaje. ¿como se puede hacer esto mismo en Delphi?

Saludos!
  • 0

#2 FGarcia

FGarcia

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 687 mensajes
  • LocationMéxico

Escrito 14 septiembre 2009 - 07:25

Bueno Hice esto, en el clik del boton solo ejecuto un procedimiento y si se cumple se llama al procedimiento GuardaDatoEntrada. Este ultimo lo modifique para que, primero verifique si el dato es valido y de ser asi lo guarde en la BD, en caso contrario muestra el mensaje, si se presiona la tecla YES se vuelve a ejecutar este ultimo procedimiento (¿funciones recursivas?):



delphi
  1. procedure TForm1.btValidarClick(Sender: TObject);
  2. begin
  3.   if VerificaDatos then
  4.     GuardaDatoEntrada;
  5. end;
  6.  
  7. procedure TForm1.GuardaDatoEntrada;
  8. begin
  9.   dmDatos.dstEntrada.Open ;
  10.  
  11.   if DatoValido then
  12.     with dmDatos.dstEntrada do
  13.       begin
  14.         Append;
  15.         //Lo que se tenga que guardar
  16.         Post;
  17.       end
  18.   else
  19.     if Alerta('¡El Dato no es valido! ¡ESPERE!') then
  20.       GuardaDatoEntrada;
  21.  
  22. end;



Alerta es una funcion general que tengo para mensajes de tipo YES / NO



delphi
  1. function Alerta(Msg:String): Boolean;
  2. begin
  3. Result := MessageDlg(Msg, mtconfirmation, mbYesNo, 0) = mrYes;
  4. end;



He estado haciendo algunas pruebas y me esta funcionando, aun asi lo pongo a su consideracion para corregir cualquier error que no haya detectado o mejorar el codigo.

(d)2
  • 0




IP.Board spam blocked by CleanTalk.