Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Poder salir de un campo obligatorio nulo. (https://www.clubdelphi.com/foros/showthread.php?t=46970)

saldanaluis 15-08-2007 01:44:23

Poder salir de un campo obligatorio nulo.
 
Espero me puedan ayudar en este punto.
Tengo una forma con un campo edit en el cual valido en el metodo Edit1.onexit que si es nulo ('') mande un mensaje y vuelava a ser el foco con Edit1.setfocus, pero tambien tengo dos botones en la forma: 1)Btn_OK y 2)Btn_Cancel. Con el boton 2 quiero cerrar la forma sin que valide nada y cancelar todo lo que se ha hecho, pero como Edit1 inicia la forma con el foco, si presiono el boton 2 y no hay nada en Edit1, no me deja salir de la forma. Tengo que poner algo para poder salirme y cerrar la forma, pero si presiono la tecla "Esc" si se cierra la forma y puedo salir, aunque no haya nada en Edit1. ¿Que puedo hacer para que al presionar el boton 2 pueda salirme y cerrar la forma aunque no haya nada en Edit1? El Boton 2 tiene como propiedades ModalResult=mrCancel y Cancel=true.
Gracias de antemano por su valiosa respuesta.

egostar 15-08-2007 01:49:49

Lo mas fácil es asignar el en el evento OnClick del bitbtn2 Close.

Código Delphi [-]
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  Close;
end;

Salud OS

jhonny 15-08-2007 02:00:10

Si aún no es suficiente el codigo que te plantea egostar, haz lo siguiente en la validación que haces en el OnExit del Edit:

Código Delphi [-]
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  if not Button2.Focused then //Esta linea verificara, que no sea el Boton2 quien este recibiendo el foco
     if Edit1.Text = '' then 
        raise Exception.Create('Error: Digite un dato');
end;

saldanaluis 15-08-2007 02:02:56

Asi es. En el evento onclick del boton2 tengo el "Close" pero al presionar el boton 2 ejecuta el evento Edit1.onexit, y ahi verifica que es nulo (''), manda el mensaje y hace al Edit1.SetFocus; por lo que vuelve al Edit1 y espera que le ponga algo. La funcionalidad que necesito es que si presiono el boton 2 no tome en cuenta el evento Edit1.OnExit y pueda cancelar todo y cerrar la forma.
Espero que me haya explicado mejor.
Gracias y saludos...

jhonny 15-08-2007 02:08:43

Entonces, lo que te he sugerido debe funcionar.

saldanaluis 15-08-2007 02:10:59

Muchas gracias. Eso de Button2.Focused funciona de maravilla. ¡Lo que es saber...! Espero algun dia saber una fracción del conocimiento de los miembros del foro.
Gracias nuevamente.
Saludos...


La franja horaria es GMT +2. Ahora son las 15:17:08.

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