Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Finalizar una Condición (https://www.clubdelphi.com/foros/showthread.php?t=27811)

jdangosto 01-12-2005 09:54:57

Finalizar una Condición
 
Hola.

Tengo el siguiente código
Código Delphi [-]
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

Código Delphi [-]
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.

Código Delphi [-]
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


La franja horaria es GMT +2. Ahora son las 23:55:42.

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