Ver Mensaje Individual
  #6  
Antiguo 08-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luis.Lapuente.

Si alguno de los TEdit (Edit1 o subtotal) no tienen contenido, la función StrToFloat lanzará una excepción ya que la cadena vacía no es suceptible de ser convertida a número de punto flotante.

Tres opciones que evitan la situación:

A)
Código Delphi [-]
var
  A,B: Double;
begin
  try
    A:= StrToFloat(Edit1.Text);
  except
    Edit1.SetFocus;
    raise Exception.Create('Edit1 no tiene un número decimal válido');
  end;

  try
    A:= StrToFloat(subtotal.Text);
  except
    subtotal.SetFocus;
    raise Exception.Create('subtotal no tiene un número decimal válido');
  end;

B)
Código Delphi [-]
var
  A,B: Double;
begin
  if not TryStrToFloat(Edit1.Text, A) then
  begin
    Edit1.SetFocus;
    raise Exception.Create('Edit1 no tiene un número decimal válido');
  end;

  if not TryStrToFloat(subtotal.Text, B) then
  begin
    subtotal.SetFocus;
    raise Exception.Create('subtotal no tiene un número decimal válido');
  end;

C)
Código Delphi [-]
var
  A,B: Double;
begin
  A:= StrToFloatDef(Edit1.Text, 0);     // A = 0 si no se puede efectuar la conversión
  B:= StrToFloatDef(subtotal.Text, 0);  // B = 0 si no se puede efectuar la conversión

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita