RE:Tamaño de archivo de solo lectura!
El error al que haces referencia es de "permiso denegado" y creo que sé por qué es. Cuando usas Reset el modo de apertura por omisión es de lectura/escritura, esto está determinado por una variable predefinida llamada FileMode, el valor por omisión es 2 (lectura/escritura) y de allí el error de permiso denegado, debes establecer el valor de la variable FileMode a 0 (cero) solo lectura, un valor 1 a FileMode significa solo escritura. Mi ejemplo corregido:
var
F: File of Byte;
Tam: LongInt;
begin
FileMode:=0;
Assign(F,'Archivo.ext');
reset(F);
Tam:=FileSize(F);
Close(F);
end.
Debes tener en cuenta además que la variable FileMode afecta a todas las operaciones sobre archivos a partir de su cambio de valor, por lo que si luego de hacer esto necesitas escribir algo en algún otro archivo tienes que regresar su valor a 2 antes de usar ese archivo.