yo en mi caso no trabajo asi con las querys... así que no voy a ser de gran ayuda, pero me llama la atención:
Código:
Query1.SQL.Text:='Select * From COCHES WHERE MATRICULA=:mat';
Query1.ParamByName('mat').AsString:=FormImprime.Query1.FieldByName('MATRICULA').AsString; // ??? seguro ???
Query1.Active:=true;
Que antes de activar la query ya intentes recuperar un valor de la misma. Es decir, no deberías para asignarle el parámetro "mat", pasarle algo que no estuviera en la Query (o por lo menos no en esa).
Pero repito, no manejo así las querys entonces no se...