Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Обзор папок SGHBrowseFolder   Найти похожие ветки 

 
DDDeN   (2004-07-13 16:05) [0]

Подскажите плз как получить путь при помощи окна "Обзор папок"!!! Без всяких компонент.


 
AD_infiniTUM   (2004-07-13 16:11) [1]

unit DirDlg;

interface

uses
 Windows, Messages;

function GetDirectory(Wnd: HWnd; var Dir: string; const DialogText: string): Boolean;

implementation

uses
 ShlObj;

const
 BIF_RETURNONLYFSDIRS = $0001;
 BIF_RETURNFSANCESTORS = $0008;
 BFFM_INITIALIZED = 1;
 BFFM_SETSELECTION = WM_USER + 102;

var
 ADir: string;

procedure CoTaskMemFree(pv: Pointer); stdcall; external "ole32.dll" name "CoTaskMemFree";

function ExplorerHook(Wnd: HWnd; Msg: UINT; LParam: LPARAM; Data: LPARAM): Integer; stdcall;
begin
 Result := 0;
 if Msg = BFFM_INITIALIZED then
   SendMessage(wnd, BFFM_SETSELECTION, 1, Longint(PChar(ADir)));
end;

function GetDirectory(Wnd: HWnd; var Dir: string; const DialogText: string): Boolean;
var
 BrowseInfo: TBrowseInfo;
 ItemIDList: PItemIDList;
 Temp: array[0..MAX_PATH] of Char;
begin
 ADir := Dir;
 FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
 with BrowseInfo do
 begin
   pidlRoot := nil;
   lpszTitle := PChar(DialogText);
   ulFlags := BIF_RETURNONLYFSDIRS or BIF_RETURNFSANCESTORS;
   lpfn := ExplorerHook;
   hWndOwner := Wnd;
   iImage := 0;
 end;
 ItemIDList := SHBrowseForFolder(BrowseInfo);
 Result := ItemIDList <> nil;
 if Result then
 begin
   SHGetPathFromIDList(ItemIDList, Temp);
   Dir := Temp;
   CoTaskMemFree(ItemIDList);
 end;
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.049 c
14-1091360891
Neo][
2004-08-01 15:48
2004.08.22
Как привязать прогу к определенному компу в Delphi


1-1091807061
Spike
2004-08-06 19:44
2004.08.22
Подскажите, как скопировать в Clipboar русский текст...


1-1091481675
QuestionX
2004-08-03 01:21
2004.08.22
Рисование на форме поверх всех компонентов


6-1087542460
Dennisius
2004-06-18 11:07
2004.08.22
Дискриминация других почтовых серверов на Yandex.RU


3-1090906118
artem123
2004-07-27 09:28
2004.08.22
Инкрементное поле в Firebird 1.5 через dbExpress