Vale, perdona, no me había fijado en todos los cambios de tipo
Te explico, para poder hacer un cambio de tipo entre string y un numérico, éste tiene que ir sin separador de millares, sino siempre te dará un error en la conversión.
Cuando haces esto:
tot := StrToCurr(FormatFloat('###,###,##0.00',CurrencyEdit1.Value));
Lo que hace Delphi es esto:
Valor Edit: 4500.00
Pasa el calor numérico a string dándole formato: 4,500.00
Luego intenta pasarlo nuevamente a numérico, pero al tener ya el separador de millares, es cuando te salta el error.
No entiendo todas estas transformaciones, dado que puedes asignarle a la variable
tot directamente el valor del CurrencyEdit, pero si realmente son necesarias, lo que tienes que hacer es cambiar la máscara a '0.00' para quitar el separador de millar
Nos leemos