Yo le agregaría un mínimo detalle al código de Caral:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Edit1.Text:= OpenDialog1.FileName;
end;
Por otro lado, algunas extenciones de la VCL como RxLibs incluyen componentes que son unas casillas de texto con un botón que te despliegan un diálogo de este tipo encapsulando lo que quieres hacer.
Saludos!