Я вот не понимаю для чего такие трудности. Вы же имеете дело с простым текстовым файлом, который собираетесь отображать в Memo, у которого собственная процедура LoadFromFile, работающая через TFileStream, прекрасно с этим справится.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Memo1.Clear;
Memo1.Lines.BeginUpdate;
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
Memo1.Lines.EndUpdate;
end;
end;
Любая визуализация значительно замедляет процессы. При загрузке больших файлов можно сообщать пользователю, что это займет некоторое время. Этого будет вполне достаточно.