Ver Mensaje Individual
  #1  
Antiguo 25-05-2012
rufo rufo is offline
Miembro
 
Registrado: jul 2006
Posts: 240
Reputación: 18
rufo Va por buen camino
error cuando ingreso cantidad de 1 millon

Hola amigos de nuevo yo y no estoy repitiendo la misma pregunta pero es secuencia de lo que estado haciendo ayer y ahora me vino otro problemilla, resulta que estoy haciendo una factura y en un memo pongo al querer poner 1,000,000 me muestra el siguiente error.



Tambien les anexo el codigo que estoy usando para este programa que estoy haciendo para ver si me puede ayudar a decirme el porque el error. De antemano gracias.

Código Delphi [-]
procedure TFACTURA.Memo2Change(Sender: TObject);
var
 Suma,n1,n2: Extended;
 N,i: integer;
 Sep: string[2];
 SALIR : BOOLEAN;

begin
  SALIR:=FALSE;
  N := LENGTH(MEMO1.Text);
  REPEAT
    IF COPY(MEMO2.Text, N, 1) = ' ' THEN SALIR:=TRUE;
    N:=N-1;
  UNTIL (N<1) OR (SALIR=TRUE);

  ULTPALABRA := COPY(MEMO2.TEXT, N+1, LENGTH(MEMO2.TEXT)-N);

  Sep[1]:= ThousandSeparator;
  Sep[2]:= DecimalSeparator;
  DecimalSeparator:= '.';
  ThousandSeparator:= ',';
  Suma:= 0;
  for i:= 0 to Memo2.Lines.Count - 1 do
    suma := suma + StrToFloat(StringReplace(Memo2.Lines[i],',','',[rfIgnoreCase]));
  Edit8.Text:= FloatToStrF(suma, ffNumber, 20, 2);


  n1:=  0.16* StrToFloat(StringReplace(Edit8.Text,',','',[rfIgnoreCase])); // Multiplicar
  Edit9.Text:= FloatToStrF(n1, ffNumber, 20, 2);  // Mostrar

 n1:= StrToFloat(StringReplace(edit8.Text,',','',[rfIgnoreCase]));
 n2:= StrToFloat(stringReplace(edit9.Text,',','',[rfIgnoreCase]));
 edit10.Text:=FloatToStrF(n1+n2,ffNumber,20,2);

 label22.Caption:=CantidadEnLetra(StrtoFloat(stringReplace(edit10.Text,',','',[rfIgnoreCase])),1);
  //...
  ThousandSeparator:= Sep[1];
  DecimalSeparator:= Sep[2]

end;

Y este codigo siguiente lo pongo en Onkeypress
Código Delphi [-]
procedure TFACTURA.Memo2KeyPress(Sender: TObject; var Key: Char);
 begin
 IF (KEY = #13) AND (LABEL1.CAPTION <> '') THEN
  BEGIN
    KEY:=#0;
    MEMO2.TEXT := STRINGREPLACE(MEMO2.Text, TRIM(ULTPALABRA), FORMATFLOAT('##,##,##0.00',STRTOFLOAT(ULTPALABRA)), [RFREPLACEALL]);
    MEMO2.SelStart := LENGTH(MEMO2.TEXT);
  end;
end;

De lo cual fue codigo que me ayudaron en otro post para que el memo separara la cantidad en miles pero ahora implementarlo me aparece error ya que el memo realiza un calculo y al llegar a la cifra de un millon me manda el error que les comento, bueno espero que me ayuden o si pueden me digan donde la estoy regando y de antemano gracias.
Responder Con Cita