PDA

Ver la Versión Completa : Poder salir de un campo obligatorio nulo.


saldanaluis
15-08-2007, 01:44:23
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.

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:

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...