フォルダ選択ダイアログを出す

Delphiにはダイアログコンポーネントが豊富にありますが、ディレクトリ選択用のダイアログがありません。しかし実は FileCtrlユニットにそれを実現する SelectDirectory関数があります。

■ フォルダ選択ダイアログを出す例
// uses節に FileCtrl を追加
var
  strDir   :    string;
begin
  if    SelectDirectory(strDir, [sdAllowCreate],0)  then  
  begin
     //OKの場合の処理
  end;
end;

第2パラメータ TSelectDirOpts

意味
sdAllowCreate 編集ボックスが表示され,ユーザーは存在しないディレクトリの名前を入力できる。このオプションはディレクトリを作成しないが,アプリケーションは必要に応じてDirectory パラメータにアクセスして,選択されたディレクトリを作成できる
sdPerformCreate Options が sdAllowCreate を保持している場合にのみ使う。存在しないディレクトリ名をユーザーが入力すると,SelectDirectory がそのディレクトリを作成する
sdPrompt Options が sdAllowCreate を保持している場合に使う。このオプションは,入力したディレクトリが存在しないことをユーザーに通知し,そのディレクトリを作成するかどうかをたずねるメッセージボックスを表示する。ユーザーが[OK]を選択した場合,Options が sdPerformCreate を保持していればディレクトリが作成される。Options が sdPerformCreate を保持していなければディレクトリは作成されないので,SelectDirectory が復帰するときにアプリケーションが作成しなければならない