En principio todo parece estar bien, como quisquilloso que soy, yo pondría:
Código Delphi
[-]
report_ReciboIngreso := treport_ReciboIngreso.Create(nil)
por filosofía propia: "Si yo lo creo, yo lo destruyo, Si Delphi lo crea, que Delphi lo destruya".
No sé si trabajas con QuickReports 3: hay un bug conocido (la ruta del directorio Temp de windows 2000 y XP es muy larga) y QR solo acepta 32 caracteres como máximo, así que, aleatoriamente salta violaciones de acceso, cambiando la ruta de windows, por ejemplo a c:\windows\temp y c:\windows\tmp ya se arregla.
Saludos