![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Folder. [D7, WinME, WinXP]
ASoft © (2004-12-10 12:05:00)Уважаемые мастера!
Не сочтите за труд, подскажите функцию открытия Change Folder в Windows.
До этого, я юзал компонент Disk Control.
Спасибо.
VMcL (2004-12-10 12:58:00) [1]MSDN, в принципе говорит, что:
> SHGetMalloc Function
--------------------------------------------------------------------------------
Not currently supported.
Remarks
This function should no longer be used. Use the CoTaskMemFree and CoTaskMemAlloc functions in its place.
DiamondShark (2004-12-10 12:53:00) [2]
> GlobalFreePtr(lpItemID);
Ни разу не так.
var
...
Malloc: IMalloc;
begin
...
SHGetMalloc(Malloc);
Malloc.Free(lpItemID);
ASoft (2004-12-10 12:39:00) [3]Cosinus ©
Я как-то раз пробовал SHBrowseForFolder(), но что-то Delphi ругалась, щас не помню. Спасибо за инфу
Cosinus (2004-12-10 12:15:00) [4]Если я правильно понял вопрос, то...
uses
ShellAPI, ShlObj;
...
procedure TForm1.Button1Click(Sender: TObject);
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := Form1.Handle;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := 'Please specify a directory';
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then
begin
SHGetPathFromIDList(lpItemID, TempPath);
ShowMessage(TempPath);
GlobalFreePtr(lpItemID);
end;
end;