ディレクトリ選択ダイアログを表示するには、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);