Pastas - procurando impressora e arquivos |
Top Previous Next |
/// Procurar em subpastas.
Uses ShlObj;
function GetFolder : String; Var T : Array [0..1024] of Char; Bi : TBrowseInfo; begin with BI do Begin hwndOwner := Application.Handle; pidlRoot := nil; pszDisplayName := @T; lpszTitle := 'Selecione a pasta'; lpfn := nil; iImage := 0; ulFlags := BIF_ReturnOnlyFSDirs; // Return Only File System Directories End;
SHGetPathFromIDList (SHBrowseForFolder (BI), @T); Result := String (T); end;
///////////////////////////////////////////////////////////////////////////// // se desejar pesquisar por Pasta, arquivo ou impressora use esta versão: // /////////////////////////////////////////////////////////////////////////////
type TGetFolderTypes = (ppFolder, ppFile, ppPrinter);
function GetFolder(Tipo: TGetFolderTypes = ppFolder): string; var T : array [0..MAX_PATH] of Char; Bi : TBrowseInfo; begin with BI do begin case Tipo of ppFolder : lpszTitle := 'Selecione uma pasta'; ppFile : lpszTitle := 'Selecione um arquivo'; ppPrinter: lpszTitle := 'Selecione uma impressora'; end; hwndOwner := Application.Handle; pidlRoot := nil; lpfn := nil; pszDisplayName:= @T; iImage := 0; case Tipo of ppFolder : ulFlags := BIF_RETURNONLYFSDIRS; ppFile : ulFlags := BIF_BROWSEINCLUDEFILES; ppPrinter: ulFlags := BIF_BROWSEFORPRINTER; end; end; SHGetPathFromIDList (SHBrowseForFolder (BI), @T); Result := string(T); end; |