Delphi XE Pro - SelectDirectory を使って(マイ) コンピュータを開く
Twitter に
SelectDirectory 関数?を使う時に(マイ) コンピュータを初期値として開きたいけど、どうすれば良いんだろう?
と書いた。

特になにも引数を与えずに SelectDirectory を使うとWindows 7では
b0003577_1838074.png
このようなダイアログが開かれるんだけどネットワークフォルダーとかを選択されると
エラー処理すべきことが増えそうなので制限したいと思って聞いてみた。

しばらくして
DirがStringの変数として。こんな感じの謎の呪文を
SelectDirectory('', '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}', Dir);
とするといいよ。とReplyをいただいたので実際にやってみたら、
b0003577_18402097.png

やりたいことが出来ました。
Windows XP SP3 なパソコンでも動いたので Vista でも問題ないと思う。

以下コード。



uses にStdCtrlsを追加
var に SelectFolder :string; //フォルダのパスを格納する変数

procedure TForm1.Button1Click(Sender: TObject);
begin
if SelectDirectory('フォルダの選択','',SelectFolder) then
begin
ShowMessage( SelectFolder + ' を選択しました');
end
else
ShowMessage('なにも選択しませんでした');
end;


procedure TForm1.Button2Click(Sender: TObject);
var
Dir :string;
begin
Dir := '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}';
if SelectDirectory('フォルダの選択',Dir,SelectFolder) then
begin
ShowMessage( SelectFolder + ' を選択しました');
end
else
ShowMessage('なにも選択しませんでした');
end;


Button1Click の処理はこちらを参照しました。→ Delphi SelectDirectory フォルダの参照ダイアログを表示する
[PR]

by arigayas | 2012-04-25 19:13 | Delphi Programming | Trackback | Comments(0)
トラックバックURL : http://arigayas.exblog.jp/tb/18194082
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
<< 2012年4月からのアニメ Delphi XE Pro -... >>