Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2002年01月14日] [更新 2014年01月03日] ファイル関連ダイアログコンポーネント類
フォルダの参照ダイアログコンポーネント
プロパティ
動作確認等 図は Windows 7 U64(SP1) + Delphi XE(UP1) Pro で作成





凡例  published
 public
 ReadOnly



プロパティ


ダイアログの表示位置とサイズのプロパティ FormLeft,FormTop の値はデフォルトで0です.これらの値が共に 0 の時は,スクリーンの中央に表示するようになっています.前のバージョンとの互換性を保つためにこの仕様となっています.
ダイアログを閉じた時に終了時の位置とサイズがプロパティで取得できます.次回の表示位置とサイズ設定に利用できます.

InitDir (ダイアログを表示した際に選択状態にするフォルダ) は,必ず RootDir の階層下になければなりません.この関係が矛盾しているとダイアログを表示しません.


図1
プロパティ

 Handle HWND ダイアログのハンドル
 FormTop Integer ダイアログフォームの上端Y座標値
デフォルト値0
 FormLeft Integer ダイアログフォームの左端X座標値
デフォルト値0
 FormWidth Integer ダイアログフォームの幅
コンポの初期値以下の値には設定できない
 FormHeight Integer ダイアログフォームの高さ
コンポの初期値以下の値には設定できない
 RootDir String ルートフォルダの指定
デリミタの有無は問わない
このルートフォルダより上のフォルダは表示しない
RootSpecialDir が sfNone または sfDesktop の時に有効
空白の時はデスクトップ
 InitDir String 選択状態にするフォルダの指定
デリミタ有無は問わない
InitSpecialDir が sfNone または sfDesktop の時に有効
空白の時はデスクトップ
 RootSpecialDir TplBFSpecialDir ルートフォルダを特殊フォルダにする場合に指定
sfNone の時は RootDir がルートとなる
選択可能なリストは下表参照
デフォルトは sfDesktop
 InitSpecialDir TplBFSpecialDir 選択状態のフォルダを特殊フォルダにする場合に指定
sfNone の時は InitDir の値が初期選択フォルダとなる
選択可能な値は下表参照
デフォルトは sfNone
 Options TplBrowseOptions
(Boolean)
表示または選択可能なフォルダの指定
選択可能な値は下表参照
デフォルトは bifReturnOnlyFSDirs
 Caption String ダイアログのフォームのキャプション文字列
空白の時はシステムが自動設定
 Title String ダイアログのフォーム上に表示する説明用文字列
 Directory String 終了時に返すディレクトリ名
デリミタは付かない

特殊フォルダの場合,例えば
C:\Documents and Settings\UserName\My Documents
仮想フォルダの場合は GUID の文字列を返す
 FolderName String 終了時に返すフォルダ名
ディレクトリ名は付かない

特殊フォルダの場合,例えば
マイドキュメント




特殊フォルダの値 プロパティ InitSpecialDir と RootSpecialDir


InitSpecialDir または RootSpecialDir で指定可能な特殊フォルダの値です.
下の表で特殊フォルダの簡単な説明をしていますが,実際のフォルダを確認するにはサンプルプログラム集の [特殊フォルダのフルパスを取得] を参考にして下さい.[フォルダの参照ダイアログとコールバック関数] でも実際のフォルダを調べることができます.また,DEKO さんのサイトに一覧表があります.これら値は Windows のバージョンによっては使用されていない場合があります.

この他,デフォルトユーザ関係の CSIDL_DEFAULT_XXXXが,認識される環境変数のリストにあります.
Windows Vista 以降で追加された仮想,特殊フォルダについては,添付のテストプログラムを参考にしてください.

プロパティ CSIDL フォルダ
sfNone CSIDL_DESKTOP デスクトップの仮想フォルダ
本コンポのデフォルト値
sfDesktop CSIDL_DESKTOP 同上
sfInternet CSIDL_INTERNET IE 用の仮想フォルダ
sfProgram CSIDL_PROGRAMS ユーザのプログラムメニュー
sfControls CSIDL_CONTROLS コントロールパネルの仮想フォル
sfPrinters CSIDL_PRINTERS プリンタの仮想フォルダ
sfPersonal CSIDL_PERSONAL ユーザのマイドキュメント
sfFovorites CSIDL_FOVORITES ユーザのお気に入り
sfStarup CSIDL_STARTUP ユーザのスタートアップ
sfRecent CSIDL_RECENT 最近使ったファイル
sfSendTo CSIDL_SENDTO 送る
sfBitBucket CSIDL_BITBUCKET ゴミ箱
sfStartMenu CSIDL_STARTMENU スタートメニュー
sfMyDocuments CSIDL_MYDOCUMENTS CSIDL_PERSONALと同じ
ユーザのマイドキュメント
sfMyMusic CSIDL_MYMUSIC ユーザのマイミュージック
sfMyVidio CSIDL_MYVIDE ユーザのマイビデオ
sfDesktopDirectory CSIDL_DESKTOPDIRECTORY ユーザのデスクトップフォルダ
sfDrives CSIDL_DRIVES マイコンピュータを表す仮想フォルダ
sfNetWork CSIDL_NETWORK ネットワークコンピュータの仮想フォルダ
sfNetHood CSIDL_NETHOOD 仮想フォルダのリンクオブジェクトを含むマイネットワークCSIDL_NETWORK とは違う
sfFonts CSIDL_FONTS フォントの仮想フォルダ
sfTemplates CSIDL_TEMPLATES ユーザのテンプレートフォルダ
sfCommon_StartMenu CSIDL_COMMON_STARTMENU 共有の [スタート] メニュー
sfCommon_Programs CSIDL_COMMON_PROGRAMS 共通の [スタート] メニューのプログラム
sfCommon_Startup CSIDL_COMMON_STARTUP 全ユーザの [スタートアップ] フォルダ
sfCommon_DesktopDirectory CSIDL_COMMON_DESKTOPDIRECTORY 全ユーザのデスクトップに表示されるフォルダ
sfAppData CSIDL_APPDATA ユーザのアプリケーションデータ
sfPrintHood CSIDL_PRINTHOOD ユーザのプリンタ仮想フォルダ
sfLocal_AppData CSIDL_LOCAL_APPDATA ユーザの[ローカルデータ][アプリケーションデータ]
sfAltSartup CSIDL_ALTSTARTUP ユーザのスタートアッププログラム.Vista以降にはなし
sfCommon_AltSartup CSIDL_COMMON_ALTSTARTUP 共有のスタートアッププログラム.Vista 以降にはなし
sfCommon_Favorites CSIDL_COMMON_FAVORITES 共有のお気に入りフォルダ
sfInternet_Cache CSIDL_INTERNET_CACHE ユーザのインターネット一時ファイル用フォルダ
sfCookies CSIDL_COOKIES ユーザのインターネットクッキー用フォルダ
sfHistory CSIDL_HISTORY インターネットの履歴項目
sfComman_AppData CSIDL_COMMON_APPDATA 共有のアプリケーションデータ
sfWindows CSIDL_WINDOW Windows ディレクトリまたは SYSROOT
sfSystem CSIDL_SYSTEM Windows のシステムフォルダ
一般的には System32
sfProgram_Files CSIDL_PROGRAM_FILES Program Files フォルダ
sfMyPictures CSIDL_MYPICTURES ユーザのマイピクチャ
sfProfile CSIDL_PROFILE ユーザのユーザー名フォルダ
sfSystemX86 CSIDL_SYSTEMX86 64 ビットシステム上のシステムフォルダ
sfProgram_filesX86 CSIDL_PROGRAM_FILESX86 64ビットシステム上のProgram Filesフォルダ
sfProgram_Files_Common CSIDL_PROGRAM_FILES_COMMON アプリケーション間で共有されるコンポーネント用のフォルダ
sfProgram_Files_CommanX86 CSIDL_PROGRAM_FILES_COMMONX86 64 ビットシステムのアプリケーションで共有コンポーネントのフォルダ
sfCommon_Templates CSIDL_COMMON_TEMPLATES 共有テンプレートフォルダ
sfCommon_Documents CSIDL_COMMON_DOCUMENTS 共有ドキュメントフォルダ
sfCommon_Admintools CSIDL_COMMON_ADMINTOOLS 共有の管理ツール用ファイルシステムのディレクトリ
sfAdmintools CSIDL_ADMINTOOLS ユーザ用の管理ツール用ファイルシステムのディレクトリ
sfConnections CSIDL_CONNECTIONS ネットワークとダイヤルアップ接続の仮想フォルダ
sfCommon_Music CSIDL_COMMON_MUSIC 共有マイミュージックフォルダ
sfCommon_Pictures CSIDL_COMMON_PICTURES 共有マイピクチャフォルダ
sfCommon_Video CSIDL_COMMON_VIDEO 共有ビデオフォルダ
sfResources CSIDL_RESOURCES Windows のリソースフォルダ
sfResources_Localized CSIDL_RESOURCES_LOCALIZED 不明
sfCommon_OEM_links CSIDL_COMMON_OEM_LINKS 使用されていない
sfCdburn_Area CSIDL_CDBURN_AREA ユーザの CD 作成フォルダ
sfComputersNearme CSIDL_COMPUTERSNEARME ワークグループ内の他のコンピュータのフォルダ
sfProfiles CSIDL_PROFILES ProfilesDirector ディレクトリ




表示または選択可能なフォルダの指定 プロパティ Options


Options プロパティで指定します.集合型のプロパティです.bifStatusText を True にするとダイアログの上 (Title プロパティ文字列の下) に文字列を表示できますが,OnSelectionChanged イベント内でないと描画できません.新しいスタイルのダイアログでは設定しても無効です.

オプション 宣言定数 機能
bifReturnOnlyFSDirs BIF_RETURNONLYFSDIRS ファイルディレクトリのみ選択可能
bifDontGoBelowDomain BIF_DONTGOBELOWDOMAIN ドメインのネットワークを表示しない
bifStatusText BIF_STATUSTEXT ダイアログツリー部のすぐ上に文字列を表示
新しいスタイルのダイアログでは設定無効
bifReturnFSAncestors BIF_RETURNFSANCESTORS ルートフォルダ以下のファイル,サブフォルダを選択可能にする
bifEditBox BIF_EDITBOX 名前編集用ボックスを表示
bifValidate BIF_VALIDATE 名前編集ボックスへの無効な文字列をチェックする
BIF_EDITBOX の指定がある時のみ有効
処理はコールバック関数内で行う
bifNewDialogStyle BIF_NEWDIALOGSTYLE 以下の新しいスタイルのダイアログを表示
リサイズ可能
ダイアログへのドラッグアンドドロップ
ショートカットメニュー (コンテキスト)
新しいフォルダの作成
bifUseNewUI BIF_USENEWUI 名前編集ボックスのある新しいスタイル BIF_EDITBOX or BIF_NEWDIALOGSTYLEと同じ
bifbrowseIncludeURLs BIF_BROWSEINCLUDEURLS URLを表示可能とする
BIF_USENEWUI と BIF_BROWSEINCLUDEFILES の指定も必要
該当フォルダがサポートする場合のみ表示
bifUAHint BIF_UAHINT 名前編集ボックスの代わりにヒントを表示 BIF_NEWDIALOGSTYLE の指定も必要
bifNoNewFolderButton BIF_NONEWFOLDERBUTTON [新しいフォルダの作成] ボタンを表示しない
BIF_NEWDIALOGSTYLE の指定も必要
bifNoTranslateTargets BIF_NOTRANSLATETARGETS 選択アイテムがショートカットの場合,リンク先ではなく,ショートカット自身の項目識別子を返す
bifBroowseForComputer BIF_BROWSEFORCOMPUTER コンピュータのみ選択可能とする
bifBrowseForPrinter BIF_BROWSEFORPRINTER プリンタのみ選択可能とする
bifBrowseIncludeFiles BIF_BROWSEINCLUDEFILES ファイルも表示して選択可能とする
bifShareAble BIF_SHAREABLE 共有リソースを表示して選択可能にする
BIF_USENEWUI の指定も必要