2004. május 6., csütörtök
Implement a Win32 look and feel "Browse for Folder" directory picker
Problem/Question/Abstract:
I'm looking for code that will let me implement a Win32 look and feel "Browse for Folder" directory picker. Like the one used in Project Options - > Directories/ Conditionals interface.
Answer:
procedure TMainForm.BrowseFolderActionExecute(Sender: TObject);
var
pidl, pidlSelected: PItemIDList;
bi: TBrowseInfo;
szDirName: array[0..260] of AnsiChar;
begin
{Get the root PIDL of the network neighborhood tree}
if SHGetSpecialFolderLocation(Handle, CSIDL_DESKTOP, pidl) = NOERROR then
begin
{Populate a BROWSEINFO structure}
bi.hwndOwner := Handle;
bi.pidlRoot := pidl;
bi.pszDisplayName := szDirName;
bi.lpszTitle := 'Select directory';
bi.ulFlags := BIF_RETURNONLYFSDIRS;
bi.lpfn := nil;
bi.lParam := 0;
bi.iImage := -1;
{Display the "Browse For Folder" dialog box}
pidlSelected := SHBrowseForFolder(bi);
{NULL indicates that Cancel was selected from the dialog box}
if pidlSelected < > nil then
begin
SHGetPathFromIDList(pidlSelected, szDirName);
ShowMessage(szDirName);
{Release the PIDL of the computer name}
CoTaskMemFree(pidlSelected);
end;
{Release the PIDL of the network neighborhood tree}
CoTaskMemFree(pidl);
end;
end;
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése