Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 11-12-2007
nando87dc nando87dc is offline
Registrado
 
Registrado: dic 2007
Posts: 2
nando87dc Va por buen camino
Cómo evitar el error al dividir por cero

tengo dos campos de texto donde el usuario ingresa dos valores y al apretar un botón se hace una división y el resultado se imprime en un tercer campo de texto.
El problema es cuando se presiona el botón sin haber ingresado ningún valor o poniendo cero (ya que intenta dividir por 0).

De qué manera puedo preceder a la acción de la división un IF o algún comando para que detecte si los campos están vacios o con 0 y evite que se siga ejecutando?.

Saludos, espero puedan ayudarme.

Fernando del Castillo
Responder Con Cita
  #2  
Antiguo 11-12-2007
dec dec is offline
Moderador
 
Registrado: dic 2004
Posts: 11.704
dec Va por buen camino
Hola,

Puedes tratar de capturar la excepción correspondiente. A mí se me ocurre esto a bote pronto, pero, agradecería cualquier crítica constructiva al respecto.

Código Delphi [-]
  try
    Edit3.Text := IntToStr(
      StrToInt(Edit1.Text)
       div StrToInt(Edit2.Text)
    );
  except
    on E: EConvertError do begin
      ShowMessage(E.Message);
    end;
    on E: EDivByZero do begin
      ShowMessage(E.Message);
    end;
    on E: Exception do begin
      ShowMessage(E.Message);
    end;
  end;
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #3  
Antiguo 11-12-2007
nando87dc nando87dc is offline
Registrado
 
Registrado: dic 2007
Posts: 2
nando87dc Va por buen camino
Me parece muy complejo para copiarlo en todos los botones...
no hay alguna forma de poner un filtro al campo de texto que no deje poner ciertos valores?
Responder Con Cita
  #4  
Antiguo 11-12-2007
dec dec is offline
Moderador
 
Registrado: dic 2004
Posts: 11.704
dec Va por buen camino
Hola,

Pues... acaso te interese usar "TMaskEdit", o "TSpinEdit"... o ciertos eventos de los "TEdit"...
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #5  
Antiguo 11-12-2007
Avatar de Neftali
Neftali Neftali is offline
Aporreador de teclados
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 13.377
Neftali Va por buen camino
Otra opción es:

Código Delphi [-]
  // Coloca esto en un procedimiento y lo llamas al principio de cada botón
  if (StrToIntDef(Edit2.Text), 0) = 0) then begin
    MessageDlg('¡¡¡¡PEDAZO DE CENUTRIO!!!!  Cómo vas a dividir por 0.',
                    mtError, [mbOK], 0);
    Exit;
  end;
__________________
Neftalí -web - MyDropBox-
Guía de estilo, Guía alternativa, TAG's.
*Añade tu foto al Club*

(UPDATE) TrackInfo v.1.7b

Contactar con el Clubdelphi


P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 11-12-2007
Avatar de egostar
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.300
egostar Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Otra opción es

Código Delphi [-]
 
MessageDlg('¡¡¡¡PEDAZO DE CENUTRIO!!!!  Cómo vas a dividir por 0.',mtError, [mbOK], 0);



Perdón pero no puedo evitar la risa con esa palabrita CENUTRIO.

Salud OS
__________________

Nuestra naturaleza está en movimiento. El reposo absoluto es la muerte”
– Blaise Pascal.
Responder Con Cita
  #7  
Antiguo 12-12-2007
Avatar de Neftali
Neftali Neftali is offline
Aporreador de teclados
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 13.377
Neftali Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
...con esa palabrita CENUTRIO.
La verdad es que nunca pensé que estuviera en el Diccionario de la Lengua.
__________________
Neftalí -web - MyDropBox-
Guía de estilo, Guía alternativa, TAG's.
*Añade tu foto al Club*

(UPDATE) TrackInfo v.1.7b

Contactar con el Clubdelphi


P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Evitar mensajes de Error de Firebird mateamargo OOP 10 13-07-2007 15:55:29
Evitar mensaje error ¡DLL no encontrada! soypincharata Varios 2 02-05-2007 04:32:08
Se puede evitar los mensajes de error David OOP 8 22-07-2006 00:39:40
Cuando cero - cero es 5.755533321E-13 IVAND Firebird e Interbase 4 12-04-2006 16:06:26
Crystal Reports desde cero, cero, cero. Repelus Impresión 1 08-03-2004 21:23:14


La franja horaria es GMT +2. Ahora son las 22:24:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi