Hola noejfh.
Me inclinaría a pensar que el problema se produce por el formato. Por ejemplo si dbeGastos.Text tiene el valor '$ 1.890,38' e intentas convertirlo mediante la función
StrToFloat te vá a arrojar el error que mencionas.
Ese formato es a sólo fin de ser mostrado, internamente Delphi no lo reconoce como un número decimal válido.
Una solución sería utilizar el valor del campo asociado al DBEdit:
Código Delphi
[-]
Gastos:=StrToFloat(frmArticulos.tuDataSet.FieldByName('tuCampo').AsString);
...
O simplemente:
Código Delphi
[-]
Gastos:= frmArticulos.tuDataSet.FieldByName('tuCampo').AsFloat; ...
O la misma cosa escrita de otro modo:
Código Delphi
[-]
with frmArticulos.dbeGastos.DataSource.tuDataSet do
Gastos:= FieldByName('tuCampo').AsFloat;
...
Saludos.