Haruyuki Mohri Blog(Delphi)

毛利春幸のブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Delphi VCL.NET で SHBrowseForFolderを使ってみる

Delphi VCLに付いてるFileCtrl.SelectDirectoryでも良いが
見た目ちょっとって感じなんで
SHBrowseForFolder を使ってみる

usesにShlObj, System.Runtime.InteropServices;を追加する


procedure T***.FormCreate(Sender: TObject);
begin
Label1.Caption := Self.SelectDirectory('フォルダを選択してください');
end;

function T***.SelectDirectory(const stTitle: String): String;
var
hres: HResult;
ip0,
ip1: IntPtr;
bi: TBrowseInfo;
lpBuffer : IntPtr;
rs: String;
begin
hres := SHGetSpecialFolderLocation(Application.Handle, CSIDL_DESKTOP, ip0);
if FAILED(hres) Then Begin
Exit;
end;
SetLength(rs, MAX_PATH);
bi.hwndOwner := Handle;
bi.pidlRoot := ip0;
bi.lpszTitle := stTitle;
bi.ulFlags := 0;
bi.lpfn := Nil;
bi.lParam := 0;
ip1 := SHBrowseForFolder(bi);
if not (ip1 = nil) then
begin
lpBuffer := Marshal.StringToHGlobalAnsi(rs);
if SHGetPathFromIDList(ip1,lpBuffer) then
begin
if not(lpBuffer = nil) then
Result := Marshal.PtrToStringUni(lpBuffer);
end;
end;
end;


スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2006/04/20(木) 13:17:02|
  2. Delphi.NET

Profile

Twitter...

最近の記事

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。