Top / Programming / C++Builder / SelectDirectory関数でディレクトリ選択ダイアログを表示する

SelectDirectory関数でディレクトリ選択ダイアログを表示する

ディレクトリ選択ダイアログを表示するには、SelectDirectory関数を使用します。

SelectDirectory関数を使用するには、FileCtrl.hpp をincudeします。

#include <FileCtrl.hpp>

SelectDirectory関数には、引数の違う2種類の形式があります。

最初の方法は、Windows のディレクトリブラウザを表示します。

/**
 * @param Caption ダイアログのキャプション
 * @param Root ブラウズするルートディレクトリ
 * @param Directory 選択したディレクトリ
 * @param Options オプション
 * @param Parent
 * @return ユーザーがディレクトリを選択して[OK]を選択すると true を返し,ユーザーが[キャンセル]を選択するか,ディレクトリを選択しないでダイアログボックスを閉じると false を返します。 
 */
bool SelectDirectory(const UnicodeString Caption,
                     const WideString Root,
                     UnicodeString &Directory,
                     TSelectDirExtOpts Options = (TSelectDirExtOpts() << TSelectDirExtOpt::sdNewUI ),
                     TWinControl* Parent = (Controls::TWinControl*)(0x0));

サンプル

UnicodeString dir;
if (SelectDirectory(L"フォルダを指定して下さい。", L"", dir))
{
  //フォルダを選択して[OK]ボタンが押されたとき
  MessageDlg(dir + L"が選択されました。", mtInformation, TMsgDlgButtons() << mbOK, 0);
}

オプションの使用例

UnicodeString dir;
TSelectDirExtOpts options = TSelectDirExtOpts() << sdNewUI << sdNewFolder << sdShowEdit << sdShowFiles;
if (SelectDirectory(L"フォルダを指定して下さい。", L"", dir, options))
{
  MessageDlg(dir + L"が選択されました。", mtInformation, TMsgDlgButtons() << mbOK, 0);
}

オプションで指定できる値は、次のページをご覧ください。

次の方法は、古いダイアログ形式。

/**
 * @param Direcotry 現在選択しているディレクトリ
 * @param Options 存在しないディレクトリを入力したときの応答方法
 * @param HelpCtx ヘルプコンテキストID
 * @return ユーザーがディレクトリを選択して[OK]を選択すると true を返し,ユーザーが[キャンセル]を選択するか,ディレクトリを選択しないでダイアログボックスを閉じると false を返します。 
 */
bool SelectDirectory(UnicodeString &Directory, TSelectDirOpts Options, int HelpCtx);

変更履歴