- (**---------- Déclaration des API Functions ----------**)
- Function SHGetPathFromIDList (pidl : Integer; pszPath : String) : Integer;
- stdcall;external 'shell32.dll' name 'SHGetPathFromIDListA';
-
- Function SHBrowseForFolder (lpBrowseInfo : BROWSEINFO) : Integer;
- pascal;external 'shell32.dll' name 'SHBrowseForFolderA';
-
-
- //Affiche l'arborescence des repertoires afin de choisir un Path
- Procedure DisplayExplorer();
- var
- x : BROWSEINFO;
- Chemin : String;
- pidl : Integer;
- RetVal : Integer;
- p : Integer;
-
- begin
- FillChar(x, SizeOf(x), 0);
- x.hOwner := frmPreferences.Handle; //Handle de l'objet de votre fiche
- x.pidlRoot := 0;
- x.lpszTitle := 'Sélectionnez un répertoire';
- x.ulFlags := 1;
-
- pidl := SHBrowseForFolder(x);
-
- Chemin := StringOfChar(Chr(0),512);
-
- RetVal := SHGetPathFromIDList(pidl, Chemin);
-
- If RetVal <> 0 Then
- begin
- p := Pos(Chr(0),Chemin);
- txtRepertoire.Text := Copy(Chemin,1,p); //txtRepertoire est un TEdit
- end;
- end;
(**---------- Déclaration des API Functions ----------**)
Function SHGetPathFromIDList (pidl : Integer; pszPath : String) : Integer;
stdcall;external 'shell32.dll' name 'SHGetPathFromIDListA';
Function SHBrowseForFolder (lpBrowseInfo : BROWSEINFO) : Integer;
pascal;external 'shell32.dll' name 'SHBrowseForFolderA';
//Affiche l'arborescence des repertoires afin de choisir un Path
Procedure DisplayExplorer();
var
x : BROWSEINFO;
Chemin : String;
pidl : Integer;
RetVal : Integer;
p : Integer;
begin
FillChar(x, SizeOf(x), 0);
x.hOwner := frmPreferences.Handle; //Handle de l'objet de votre fiche
x.pidlRoot := 0;
x.lpszTitle := 'Sélectionnez un répertoire';
x.ulFlags := 1;
pidl := SHBrowseForFolder(x);
Chemin := StringOfChar(Chr(0),512);
RetVal := SHGetPathFromIDList(pidl, Chemin);
If RetVal <> 0 Then
begin
p := Pos(Chr(0),Chemin);
txtRepertoire.Text := Copy(Chemin,1,p); //txtRepertoire est un TEdit
end;
end;