Hola Oscarac.
Al tratarse de un archivo secuencial creo que vas a tener que hacer una lectura previa para contar el número de líneas si querés que la barra se comporte
de forma representativa. La función
FileSize devuelve el número de registros de un archivo tipeado. Si el archivo no tiene tipo, como es el caso, toma por defecto un registro de 128 bytes.
Código Delphi
[-]
...
function TForm1.NumFileLines(NomArch: string): Integer;
var
F: TextFile;
begin
AssignFile(F,NomArch);
Reset(F);
Result:= 0;
while not Eof(F) do
begin
Readln(F);
Inc(Result);
end;
CloseFile(F);
end;
procedure TForm1.ProcessFile(NomArch: string);
var
F: TextFile;
s: string;
begin
AssignFile(F,NomArch);
Reset(F);
while not Eof(F) do
begin
ReadLn(F, s);
Memo1.Lines.Add(s);
ProgressBar1.StepIt; end;
CloseFile(F);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ProgressBar1.Max:= NumFileLines('C:\ARCHIVO.TXT');
ProgressBar1.Step:= 1;
ProcessFile('C:\ARCHIVO.TXT');
end;
...
Saludos.