Ver Mensaje Individual
  #14  
Antiguo 11-06-2018
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.

Además de lo dicho por los compañeros, también podrías validar el valor flotante al momento del ingreso, v. gr.:
Código Delphi [-]
...
implementation

const
  PTOS = '...';

type
  TConvertResult = (crOK, crCancel, crError);

function ChainToFloat(var Value: Double; const Title, Caption: string;
  const DecimalSeparator: Char = '.'): TConvertResult;
var
  str : string;
  FS  : TFormatSettings;
begin
  FS.DecimalSeparator := DecimalSeparator;
  str := InputBox(Title, Caption, PTOS);
  Result := crError;
  if str = PTOS then
    Result := crCancel
  else if TryStrToFloat(str, value, FS) then
    Result := crOk
  else
    ShowMessage('Error de conversión');
end;

// aplicado a tu código:
procedure TForm1.Button3Click(Sender: TObject);
var
  nro: Double;
  i  : Integer;
  r  : TConvertResult;
begin
  i := 1;
  repeat
    r := ChainToFloat(nro, 'Precio', 'Ingrese el precio:',',');
    if r = crOk then
    begin
      Lista.Items.Add(FloatToStr(nro));
      Inc(i);
    end;
  until (i = 4) or (r = crCancel)
end;
...

Y también agregar que, dependiendo con que Delphi estas trabajando, la función StrToFloatDef ya está incluída en la unidad SysUtils (al menos versión 7 y posteriores).

Saludos
__________________
Daniel Didriksen

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