Hola Marc.
¿ En que linea salta el error ?
1) importe := StrToFloat(DBEdit3.Text) + StrToFloat(DBEdit4.Text);
2) QPruebas.FieldByName('importe3').AsFloat:= importe;
Imagino que saltará en la primera línea, ya que parece inexplicable que pueda saltar en la segunda.
Jajaja, yo lo sabes, si en nuestro mundo suceden cosas inexplicables: es en la programación. el fallo lo daba en la segunda, al asignar el valor al campo ya que este estaba en Readonly, lo que pasa es que el mensaje era confuso. Supongo que los desarrolladores de esa rutina no pensaron que otro programador intentase hacer la barbaridad de asignar valor a un campo readonly, jajaja.
NOTA: Por cierto, una forma radical pero efectiva de solventar el problema de conversión, es implementar tu propia función de conversión de cadenas a decimales. De forma que ya no dependes de librerías externas con potenciales bugs como el que te has encontrado.
Salutacions.
Pues sí, tienes razón, ¿supongo que será meter las funciones en un modulo, poner a este en el use y llamar a la función, no?
Salut
Marc Miralles