Seguramente te marca error porque en tu edit estas capturando 123.50 en vez de 123,50 por eso te marca el error si capturas una cantidad manualmente como 123,50 veras que la función de contraveneno funciona y eso te lo aseguro porque yo tambien use su función pero no me acordaba que hay que convertir el punto decimal a coma para que muestre los centavos si no quieres hacer uso de la funcion strFormatDecimal validar que solo te permita capturar coma en vez de punto decimal
esta función lo que hece es convertir el punto decimal a coma
Código Delphi
[-]
Function strFormatDecimal(strNum: String): String; begin
if (AnsiPos('.', strNum) <> 0) then
strNum := Copy(strNum, 0, AnsiPos('.', strNum)-1) + ',' +
Copy(strNum, AnsiPos('.', strNum) + 1, Length(strNum)-AnsiPos('.', strNum));
if strNum = '' then strNum := '0';
strFormatDecimal := strNum;
end;
asi la llamas
Código Delphi
[-]
Edit2.Text:= strFormatDecimal(Edit1.Text);
valor:= StrToFloat(Edit2.Text)Edit3.Text:= FloatToStr(valor);
y luego llamar la función CantidadEnLetra
Código Delphi
[-]
var
i: integer; begin
i:=1;
Edit4.Text:=CantidadEnLetra(StrToFloat(Edit3.Text),i);
end;
o tu problema es ese o estas haciendo mal uso de los datos porque si es eso deberias analizar lo que hace el codigo...
saludos!!!