Hola, gracias por los consejos, os pongo el código...
Código Delphi
[-]
...
LongFich:= (2147483648 div 1024); FileQ := TFileStream.Create(Archivo_F, fmOpenRead or fmShareDenyWrite);
try
for i := 1 to Trunc((FileQ.Size) / LongFich) + 1 do
begin
principal.prBar.Max:= (FileQ.Size div LongFich);
principal.prBar.Position:= i;
principal.prBar.Refresh;
...
Lo que trato de conseguir es que el progreso de la barra avance segun se divida el tamaño del archivo entre la cantidad elegida, en este caso son 2Gb, pero podrian ser 4,6 u 8,2 etc... Es en los casos donde ese tamaño es = o > a 2Gb donde falla. Siempre que sea = o < a 1Gb todo funciona perfectamente includo el progreso de la barra. Y estoy como loco haciendo variaciones en la division. He probado a dividir los 2 Gb entre 1024 para pasarlo a Kbytes, sino me devuelve el mensaje "barra de progreso fuera de rango", he probado a dividir entre 1024 el tamaño del archivo y luego el resultado dividirlo entre los 2Gb div 1024 y el resultado de esto asignarlo a la propiedad Max de la barra, pero no consigo "sacar" archivos de 2Gb a partir del archivo original de 13 Gb (es un ejemplo), solo de 2Mb. O eso, o el mensaje de "... fuera de rango".
Sé que el error debe estar entre el limite de progressbar.max y la/s divisiones, pero no consigo verlo por muchas vueltas que le doy.
Saludos y gracias a todos.