|
|
|

| | | | | | | | |  |
 | 
 | 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.
|
|
 |
 | |  |
|
|