>>1
乙です

で、早速ですが

procedure TForm1.Button3Click(Sender: TObject);
Var
 FS: TFileStream;
 S: String;
begin
 If OpenDialog1.Execute Then Begin
  FS := TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
  Try
   FS.Read(PChar(S)^,FS.Size);
   Memo1.Text := S;
  Finally
   FS.Free;
  End;
 End;
end;

1バイトも読み込まれず、Read を ReadBuffer に変えると「ストリームの読み込みエラー」になります。
Read する直前に FS.Size を調べたところファイルは正しく開かれているようなのですが…
一体に何が間違ってるのでしょうか?