Revisa esta parte
Código Delphi
[-]
PresupuestoBuscado:=-1;
importes:=TPresupuestos.FieldByName('SumaTotal').asFloat;
DBEditsLectura;
SpeedButtonConfirmar.Visible:=false;
SpeedButtonCancelar.Visible:=false;
AsFloat podría estar causando el error en la conversión. Pon un breakpoint en la línea PresupuestoBuscado:=-1; y tracea el código desde ahí hasta el final de la rutina presionando la tecla F7 y será más facil detectar el error y revisa la configuración de ese campo en la DB.
Saludos.