El problema que describes es común cuando se trabaja con componentes de reportes en Delphi. La aplicación queda en memoria porque algunos recursos no se liberan correctamente. Te sugiero revisar los siguientes puntos:
1. Liberación de objetos: Verifica que todos los objetos de Rave Reports se estén liberando adecuadamente. Usa el método Free o FreeAndNil después de generar el reporte. Por ejemplo:
Código:
RvProject1.Execute;
RvProject1.Close;
// Asegúrate de liberar recursos
2. Formularios y componentes: Si abres formularios modales para mostrar los reportes, asegúrate de configurar la propiedad Action en caFree cuando uses ShowModal, o libera manualmente el formulario con Free después de cerrarlo.
3. Eventos y referencias: Revisa que no haya eventos o referencias circulares que impidan la liberación de memoria. Los componentes de Rave pueden mantener referencias a objetos que no se desvinculan correctamente.
4. Conexiones y streams: Si estás usando conexiones a bases de datos o streams para generar el PDF, verifica que se cierren y liberen explícitamente antes de cerrar la aplicación.
5. Threads: Si Rave Reports crea threads internamente, estos pueden quedar activos. Asegúrate de llamar a los métodos de cierre apropiados de la librería.
Recomendaciones adicionales:
- Prueba con una aplicación mínima que solo genere un reporte simple para aislar el problema
- Revisa si hay actualizaciones o parches para Rave Reports 5.0 que corrijan este comportamiento
- Usa el Task Manager o Process Explorer para identificar qué recursos específicos no se están liberando (handles, threads, memoria)
- Considera implementar un método de finalización en el evento OnClose de tu formulario principal donde liberes explícitamente todos los componentes de Rave Reports
Si el problema persiste, sería útil ver el código específico donde instancias y ejecutas los reportes para poder darte una solución más precisa.