Holaaaaaaaa por fin despues de mil intentos funciono si era la solucion el TFloadField era la diferencia gracias a todos por la ayuda:
const MisCamposFormateados = 'cantidad;importe';
procedure FormateaCampos(query:TQuery);
var I:integer;
begin
for i:= 0 to query.FieldCount -1 do
if Pos(Query.Fields[i].FieldName, MisCamposFormateados) <> 0 then
(Query.Fields[i] as TFloatField).DisplayFormat := ',#0.00'
end;
asi funciona de forma correcta jejejeje es de mucha ayuda ese procedimientomuchas gracias por todo hasta luego
byeeeeeee