Yo con tantas comillas simples me mareo.
Lo primero es que al enviar un número no se ha de poner entre comillas simples, la sql debe quedar así:
Código SQL
[-]UPDATE almacen SET nom_pro= 5.75
Otro dato importante: Si un dato en la Base de datos está en formato fecha, no debes pasarle un string, debes pasarle un TDate, evitarás muchos errores de ejecución.
Te aconsejo algo así:
Código Delphi
[-]
query1.SQL.text := 'UPDATE almacen SET nom_pro = :prNom_pro '+
',F_cadu= :prF_cadu '+
',E_max = :prE_max '+
', Precio_c= :prPrecio_c '+
', Precio_v= :prPrecio_v '+
' WHERE Clave = :prClave';
query1.parambyname('prNom_pro').AsXXXX := maskedit1.text;
query1.parambyname('prF_cadu').AsDate := .....
....
query1.ExecSQL;
Es decir, a cada uno de los datos se le asocia un parámetro en la consulta (un parámetro es todo aquello que lleva delante los dos puntos), en mi caso, añado siempre el prefijo "pr" para hacerlo más legible (pr = parámetro).
Cada uno de los parámetros se le asigna el valor que tendrá en su correspondiente tipo de datos.
Saludos