Code source
Code source

  Présentation
  Unités exemple gratuites
  Unités commercialisées
  Conditions d'utilisation
  Comment acheter
  Vendez vos codes
Unités commercialisées

  LRJ_DosDevice
  LRJ_FileMapped
  LRJ_ModifDateTime
  LRJ_ShellUtils
  LRJ_TokenAPI
  LRJ_WinACL
  LRJ_WinBrowseDialog
  LRJ_WinCreateProcess
  LRJ_WinDesktop
  LRJ_WinDirectories
  LRJ_WinDocRecents
  LRJ_WinDrives
  LRJ_WinFavorisWeb
  LRJ_WinFiles
  LRJ_WinIconNotifArea
  LRJ_WinInternetShortcut
  LRJ_WinMenuFolder
  LRJ_WinModule
  LRJ_WinNetApi
  LRJ_WinNetLocalGroups
  LRJ_WinNetUsers
  LRJ_WinPrivileges
  LRJ_WinProcess
  LRJ_WinRecycleBin
  LRJ_WinRegion
  LRJ_WinRegAppPath
  LRJ_WinShellLink
  LRJ_WinShellUI
  LRJ_WinSID
  LRJ_WinStation
  LRJ_WinTokenGroups
  LRJ_WinTrackChangeDir
  LRJ_WinVolumes
  LRJ_WinWorkingSet

   Accueil | GlobalDesk | Code source Delphi | Développements | Votre compte | Contact   

Code source : unité LRJ_WinBrowseDialog




      
Fenêtre de dialogue ancienne version


Fenêtre de dialogue nouvelle version


Description : cette unité contient les objets LRJ_TBrowseForFolder, LRJ_TBrowseForFile, LRJ_TBrowseForPrinter et LRJ_TBrowseForComputer. Ces objets permettent la sélection d'un répertoire, d'un fichier, d'un ordinateur ou d'une imprimante. Pour la sélection de l'imprimante, la boite de dialogue ouvre directement dans le répertoire contenant les imprimantes montées sur l'ordinateur. Certaines fonctionnalités dépendent de la version du Shell du Système.

L'unité est livrée avec une application de démonstration ( voir description plus loin ) qui utilise les fonctionnalités des objets contenus dans l'unité. Les codes de l'application sont livrés avec l'unité pour illustrer comment utiliser les objets de cette unité. L'application de démonstration utilise l'unité LRJ_ShellUtils non livrée avec l'application.

L'unité LRJ_WinBrowseDialog met en oeuvre les fonctionnalités liées à la fonction SHBrowseForFolder de Windows.

Déclarations publiques de l'unité  I  Télécharger l'application de démonstration  I  Exemples d'utilisations

Utilise les unités : Windows, ActiveX, ShlObj, et LRJ_ShellUtils.

Version : 1.1 du 03.05.2009
Auteur : Laurent Hède
Copyright : LorenJo

Nombre de lignes : 480

Réalisée sous : Delphi 6

Systèmes compatibles : NT4, 2000, XP, Vista, serveurs

Prix : 100.00 € H.T.


Déclarations publiques de l'unité :

unit LRJ_WinBrowseDialog;

interface
                            uses
                            Windows,
                            ActiveX,
                            ShlObj,
                            LRJ_ShellUtils;

   .............

   // Certaines options ne donnent pas les résultats escomptés.
   //-----------OBJECT--------------------------
LRJ_TBrowseBase = class(TObject)
   .............
   function Browse: boolean;
   function GetDisplayName: string;
   function GetPIDListSelect: PItemIDList;
   procedure SetCoInitFlag(const: ACoInitFlag: Longint);
   procedure SetRootPIDList(const: APIDList: PItemIDList);
   property OwnerWindow: HWND read MOBrowseInfo.hwndOwner write MOBrowseInfo.hwndOwner;
   property BrowseCallbackProc: TFNBFFCallBack read MOBrowseInfo.lpfn write MOBrowseInfo.lpfn;
   property ImageIndex: Integer read MOBrowseInfo.iImage;
   property LParam: LPARAM read MOBrowseInfo.lParam write MOBrowseInfo.lParam;
   property RootFolder: string read MORootFolder write SetRootFolder;
   property DialogLabel: string read MODialogLabel write MODialogLabel;
   property NewDialogStyle : boolean read IfNewDialogStyle write SetNewDialogStyle;
   property NoTranslateTarget: boolean read IfNoTranslateTarget write SetNoTranslateTarget;
   property IncludeShareableResources: boolean read IfShareableResources write SetShareableResources;
   property IncludeNetworkFolder: boolean read IfNetworkFolder write SetNetworkFolder;
   property StatutText: boolean read IfStatutText write SetStatutText;
   property Validate: boolean read IfValidate write SetValidate;
   property ShowNewFolderButton: boolean read IfNewFolderButton write SetNewFolderButton;
   property ShowEditBox: boolean read IfEditBox write SetEditBox;
   property ShowUsageHint: boolean read IfUsageHint write SetUsageHint;
   end; //-----------FIN--------------------------


   // Contrairement à ce qui est dit dans la doc, le bouton valider n'est pas grisé lorsque l'utilisateur
   // sélectionne autre chose qu'une imprimante. Par ailleurs, d'après nos constatations, l'utilisation de
   // l'option BIF_EDITBOX est obligatoire pour le style ancien
   //-----------OBJECT--------------------------
LRJ_TBrowseForPrinter = class(LRJ_TBrowseBase)
   .............
   function GetSelectPrinter: string;
   end; //-----------FIN--------------------------


   // Contrairement à ce qui est dit dans la doc, le bouton valider n'est pas grisé lorsque l'utilisateur
   // sélectionne autre chose qu'un computer. Par ailleurs, d'après nos constatations, l'utilisation de
   // l'option BIF_EDITBOX est obligatoire pour le style ancien
   //-----------OBJECT--------------------------
LRJ_TBrowseForComputer = class(LRJ_TBrowseBase)
   .............
   function GetSelectComputer: string; 
   end; //-----------FIN--------------------------


   //-----------OBJECT--------------------------
LRJ_TBrowseForFolder = class(LRJ_TBrowseBase)
   .............
   function GetSelectFolder: string;
   property ReturnOnlyAncestors: boolean read IfReturnOnlyAncestors write SetReturnOnlyAncestors;
   end; //-----------FIN--------------------------


   //-----------OBJECT--------------------------
LRJ_TBrowseForFile = class(LRJ_TBrowseBase)
   .............
   function GetSelectFile: string;
   property IncludeURL: boolean read IfIncludeURL write SetIncludeURL;
   end; //-----------FIN--------------------------



Application de démonstration

L'onglet "Folder" permet d'ouvrir une fenêtre de dialogue de sélection de répertoires et de manipuler les options associées.
L'onglet "File" permet d'ouvrir une fenêtre de dialogue de sélection de fichiers et de manipuler les options associées.
L'onglet "Printer" permet d'ouvrir une fenêtre de dialogue de sélection d'imprimantes et de manipuler les options associées.
L'onglet "Computer" permet d'ouvrir une fenêtre de dialogue de sélection d'ordinateurs et de manipuler les options associées.
Certaines options dépendent de la version du Shell. Lorsque c'est le cas, la version minimum du Shell pour qu'existe la fonctionnalité est indiquée entre parenthèses. La version du Shell présente sur votre PC est indiquée dans le haut de la fenêtre de l'application de démonstration.


Exemples d'utilisations

Sélectionner un répertoire
var
  zBrowse: LRJ_TBrowseForFolder;
begin
zBrowse := LRJ_TBrowseForFolder.Create;
if zBrowse.Browse then
  Edit4.Text := zBrowse.GetSelectFolder;
zBrowse.Free;
end;

Sélectionner un répertoire à partir du poste de travail
var
  zBrowse: LRJ_TBrowseForFolder;
  zpidl: PItemIDList;
begin
zBrowse := LRJ_TBrowseForFolder.Create;
if LRJ_SHGetFolderLocation(0, LRJ_CSIDL_DRIVES, 0, zpidl) = S_OK then
       zBrowse.SetRootPIDList(zpidl);
if zBrowse.Browse then
  begin
  edit3.Text := zBrowse.GetSelectFolder + '\';
  end;
zBrowse.Free
end;

Sélectionner une imprimante
var
  zBrowse: LRJ_TBrowseForPrinter;
begin
zBrowse := LRJ_TBrowseForPrinter.Create;
if zBrowse.Browse then
  Edit5.Text := zBrowse.GetSelectPrinter;
zBrowse.Free;
end;

Sélectionner un fichier dans le répertoire de l'application
var
  zBrowse: LRJ_TBrowseForFile;
begin
zBrowse := LRJ_TBrowseForFile.Create;
zBrowse.RootFolder := ExtractFileDir(Application.ExeName);
if zBrowse.Browse then
  Edit6.Text := zBrowse.GetSelectFile;
zBrowse.Free;
end;

Vous n'avez pas trouvé d'exemple répondant à votre problématique ?
Cliquez sur ce lien.


 Accueil | GlobalDesk | Code source Delphi | Développements | Votre compte | Contact 
Copyright © LorenJo 2000-2009    Notice légale