El problema es viejo y conocido.
La variable de entorno temp en winXP excede de 32 caracteres, y ahí está el problema. Cuando quickReports necesita crear archivos temporales para mostrar un informe grande, solo maneja rutas de menos de 32 caracteres.
Edito: Creo que QR 4 ya corrige ese fallo. Al menos el QR que viene con delphi 6 sí está afectado, por ende, delphi 5 también.
Al inicio de tu aplicación, llama esta rutina que cambiará la variable de entorno TEMP y TMP para tu programa nada más.
Código Delphi
[-]
procedure SetEnviroment();
begin
ForceDirectories(AssertBackSlash(GetWinDir)+ 'TEMP\temp');
if not SetEnvironmentVariable(PChar('TEMP'), PChar(AssertBackSlash(GetWinDir)+ 'TEMP\temp')) then
Raise Exception.Create('No se ha podido crear el directorio temporal (TEMP) para los informes');
ForceDirectories(AssertBackSlash(GetWinDir)+ 'TEMP\tmp');
if not SetEnvironmentVariable(PChar('TMP'), PChar(AssertBackSlash(GetWinDir)+ 'TEMP\tmp')) then
Raise Exception.Create('No se ha podido crear el directorio temporal (TMP) para los informes');
end;
Necesitas adaptarla:
AssertBackSlash pone la última barra en una carpeta, delphi tiene una rutina parecida.
GetWinDir es una función que devuelve la ruta de instalación de windows.