OpenDirectoryDialog

0

Pamiętam, że w WinApi jest funkcją otwierająca dialog w poszukiwaniu katalogu, tylko nie pamiętam jak się nazywa i nie moge tego znaleźć !!

0
var  
  bufor : array[0..max_path] of char;
  BrowseInfo : _browseinfoA;
  IDList : PItemIDList;
  Folder : array[0..MAX_PATH] of char;
begin
  with BrowseInfo do
   begin
    hwndOwner := Self.Handle;
    pszDisplayName := @bufor;
    lpszTitle := PChar('Wybierz folder:');
    pidlRoot := PItemIDList(0);
    ulFlags := 0;
    lpfn := @BrowseCallBack;
   end;

  IDList := SHBrowseForFolderA(BrowseInfo);
  if SHGetPathFromIDListA(IDList, @Folder) then
    PathEdit.Text := (Folder);
end;


function BrowseCallback(Handle : HWND; uMSg : integer;
  lParam, lpData : LParam) : integer;
  STDCALL;
var 
  buff : array[0..MAX_PATH] of char;
begin
  if uMsg = BFFM_INITIALIZED then
   begin
    StrPCopy(Buff, Form1.PathEdit.Text);
    SendMessage(Handle, BFFM_SETSELECTION, integer(True), integer(@buff));
   end;
  Result := 0;
end;

Ta druga funkcja ustawia poczatkowo taki folder, jaki aktualnie jest wpisany w Edicie. Po wybraniu folderu nowa sciezka ponownie jest zapisywana do PathEdit :)

0

thx
O tej pierwszej metodzie przeczytalem na MSDN'ie, o drugiej nie wiedzałem.
Tylko nie wiem dlaczego ubzdurzyło mi sie, że w WinAPI jest do tego jedna uproszczona funkcja i dlatego nie mogłem jej znależć :)

0

Big THX !!!! (Ikari)
Na bank sie przyda!! [cya]

1 użytkowników online, w tym zalogowanych: 0, gości: 1