PDA

Ver la Versión Completa : Finalizar una Condición


jdangosto
01-12-2005, 09:54:57
Hola.

Tengo el siguiente código
if edit1.Text = '' then
showmessage('¡¡ DEBE DE INTRODUCIR UN NOMBRE !!');

if radio_nombre.Checked = true then
BEGIN
buscar_nombre.Close;
buscar_nombre.ParamByName('nom').AsString := edit1.Text+'%';
buscar_nombre.Open;
END
else showmessage('¡¡ NO EXISTE NINGÚN REGISTRO !!');

Este código no da ningún tipo de error, lo que pasa es que no me funciona como quisiera. La idea es que si el edit está vacio muestre el mensaje, y lo hace, pero tb muestra el mensaje siguiente de la siguiente condicion IF, es decir, que la ejecución del código sigue hasta que llega a su fin.

¿Cómo puedo solventar esto?

Espero explicarme con claridad.

Neftali [Germán.Estévez]
01-12-2005, 13:05:41
if edit1.Text = '' then begin
showmessage('¡¡ DEBE DE INTRODUCIR UN NOMBRE !!');
end
else begin
if radio_nombre.Checked = true then BEGIN
buscar_nombre.Close;
buscar_nombre.ParamByName('nom').AsString := edit1.Text+'%';
buscar_nombre.Open;
END
else begin
showmessage('¡¡ NO EXISTE NINGÚN REGISTRO !!');
end;
end;

jachguate
01-12-2005, 15:18:47
Una solución mas "a la delphi" sería elevar una excepción con la primera condición de error. Esto tiene muchas ventajas (se puede escribir un capítulo de un libro sobre ello), por ejemplo evita tener una serie de if's anidados al ir validando las condiciones.


begin
if trim(eNombre.text) = '' then
begin
eNombre.SetFocus;
raise Exception.Create('Error: debe introducir un nombre!');
end;
if radio_nombre.Checked then
begin
buscar_nombre.Close;
buscar_nombre.ParamByName('nom').AsString := edit1.Text+'%';
buscar_nombre.Open;
end
else
raise Exception.Create('No existe ningún nombre!');


En este caso he elevado excepciones de la clase Exception, pero nada impide que uses clases propias para ello ;) .

Hasta luego.

;)

jdangosto
02-12-2005, 08:57:38
Gracias a ambos, funciona a las mil maravillas.

Saludos