Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-05-2013
titooo titooo is offline
Miembro
NULL
 
Registrado: mar 2013
Posts: 33
Poder: 0
titooo Va por buen camino
Uso de escepciones en delphi

Buenas, les comento mi problema, necesito mostrar en un "edit" la descripcion correspondiente de un codigo ingresado por el usuario en tiempo de ejecucion a medida que el usuario los ingresa. Estos datos se encuentran almacenados en tablas SQL a los cuales tengo acceso a traves de metodos que ya eh creado.
Código Delphi [-]
begin
if (existe_sit_iva(validar_sit_iva,strtoint(edit4.Text))=false) or (edit4.Text=emptystr)
then
    edit5.Text:='error'
else
     edit5.Text:=mostrar_desc(mostrar_descri,strtoint(edit4.Text));
end;
Este es el trozo de codigo en donde valido que el codigo que ingreso el usuario es correcto o no. Ahora, mi problema:

*Cuando en primer momento ingreso un valor correcto de codigo: la descripcion aparece correctamente.
*Cuando en primer momento ingreso un valor incorrecto: el programa se detiene.
*Cuando ingreso un valor correcto pero presiono el boton de borrar en el teclado (generando el campo vacio): el programa se detiene.
*Cuando valido si el codigo ingresado es el campo en blanco: directamente no realiza ninguna accion.

Espero haberme explicado bien, cualquier cosa que no entiendan diganme y tratare de aclarar. Me han comentado que puedo solucionarlo con el uso de escepciones pero no se utilizarlas. Si conocen alguna manera alternativa para la solucion agradeceria su respuesta. Saludos!
Responder Con Cita
  #2  
Antiguo 02-05-2013
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Lightbulb

Bueno a ver si te puedo ayudar...Mirando el código que escribiste puedo ver que requieres valida el contenido del Edit4 y este debe ser un valor numérico...

Bueno para ello podría quedar así...

Código Delphi [-]
var
   Valor:Integer;
begin
        //TryStrToInt intenta trasformar el valor string a numero entero...Si hay exito devuelve True, de lo contrario False;
       if Not TryStrToInt(edit4.Text,Valor) then
          Exit;
       //Uso de Exception...
      Try
          if (existe_sit_iva(validar_sit_iva,Valor)=false)  then 
             edit5.Text:='error'
          else
             edit5.Text:=mostrar_desc(mostrar_descri,Valor);
      except //para cualquier error que se produsca...
           raise Exception.Create('Mostrar_Texto_Error');
      end;
end;

Variante...
Código Delphi [-]
var
   Valor:Integer;
begin
       if Not TryStrToInt(edit4.Text,Valor) then
          Exit;

      Try
          if (existe_sit_iva(validar_sit_iva,Valor)=false) then
             edit5.Text:='error'
          else
             edit5.Text:=mostrar_desc(mostrar_descri,Valor); 
      except 
            on E:Exception do Showmessage( E.Message );
      end;
end;

Busca en la ayuda Exceptions, raise, try
Saludos cordiales
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:50: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
Copyright 1996-2007 Club Delphi