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_WinMenuFolder




      
Description : cette unité contient les objets LRJ_TMenuFolder et LRJ_TItemMenuFolder. LRJ_TMenuFolder contient les options et propriétés de la liste du répertoire sélectionné ainsi que la liste des LRJ_TItemMenuFolder du répertoire racine. LRJ_TItemMenuFolder encapsule les fichiers et dossiers contenus dans l'arborescence du répertoire sélectionné et peut contenir une liste de LRJ_TItemMenuFolder lorsque LRJ_TItemMenuFolder encapsule un dossier.

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é. Les codes de l'application de démonstration sont également visibles à la fin de cette page comme exemple d'utilisation. L'application de démonstration utilise l'unité LRJ_WinBrowseDialog non livrée avec l'application.


L'unité LRJ_WinMenuFolder met en oeuvre les fonctions et interfaces de Windows suivantes :
             IShellFolder
IShellIcon
SHGetFileInfo
et des fonctions et objets importés des unités importées.

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

Utilise les unités : Windows, Classes, ActiveX, ShlObj, Controls, ShellAPI, ImgList, Menus, SysUtils, LRJ_ClassesPlus et LRJ_ShellUtils.

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

Nombre de lignes : 432

Réalisée sous : Delphi 6

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

Prix : 98.00 € H.T.

Déclarations publiques de l'unité :

unit LRJ_WinMenuFolder;

interface

                                uses
                                Windows,
                                Classes,
                                ActiveX,
                                Controls,
                                ShellAPI,
                                ImgList,
                                ShlObj,
                                Menus,
                                SysUtils,
                                LRJ_ClassesPlus,
                                LRJ_ShellUtils;

type
LRJ_TMenuFolder = class;

  //-----------OBJECT--------------------------
LRJ_TItemMenuFolder = class(TObject)
  .................
  function Count: integer;
  property IconIndex: integer read GetIconIndex;
  property FileName: string read GetFileName;
  property FullFileName: string read GetFullFileName;
  property IfFolder: boolean read GetIfFolder;
  property ParentItem: LRJ_TItemMenuFolder read MOParentItem;
  end; //-----------FIN--------------------------


LRJ_TOnClickItemMenuFolder = procedure (const sender : LRJ_TItemMenuFolder) of object;


  //-----------OBJECT--------------------------
LRJ_TMenuFolder = class(TComponent)
  .................
  procedure RefreshList;
  function Count: integer;
  procedure ChargeToMenu(const AMenu: TMenuItem);
  property ImageList: TImageList read GetImageList;
  property SmallIcon: boolean read GetIfSmallIcon write SetIfSmallIcon;
  property OnClick: LRJ_TOnClickItemMenuFolder read MOOnClick write MOOnClick;
  property RootFolder: string read MORootFolder write SetRootFolder;
  property Items[const Index: integer]: LRJ_TItemMenuFolder read GetItem;
  end; //-----------FIN--------------------------


Application de démonstration

Pour sélectionner un répertoire racine à monter dans le PopUp menu, cliquez sur "Parcourir" et sélectionner le répertoire.
Pour que le menu soit constitué de petites ou grandes icônes, cliquez les choix correspondant dans le groupe "Options".
Pour faire apparaître le PopUp menu, cliquez sur "Show menu".


Exemples d'utilisations

Codes de l'application de démonstration
unit unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Menus, ShellAPI,

                              LRJ_WinBrowseDialog,
                              LRJ_WinMenuFolder;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    RadioGroup1: TRadioGroup;
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Button2: TButton;
    PopupMenu1: TPopupMenu;
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
  MOMenuFolder: LRJ_TMenuFolder;
  procedure OnClickItem(const sender : LRJ_TItemMenuFolder);
  public
  
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{--------------------------------------------------------------}
procedure TForm1.OnClickItem(const sender : LRJ_TItemMenuFolder);
var
  zFullName: string;
begin
zFullName := sender.FullFileName;
ShellExecute(0, nil, PChar(zFullName), nil, PChar(ExtractFileDir(zFullName)), SW_SHOWDEFAULT);
end;
{--------------------------------------------------------------}
procedure TForm1.Button2Click(Sender: TObject);
var
  zBrowse: LRJ_TBrowseForFolder;
begin
zBrowse := LRJ_TBrowseForFolder.Create;
if zBrowse.Browse then
  begin
  Edit1.Text := zBrowse.GetSelectFolder;
  MOMenuFolder.RootFolder := Edit1.Text;
  end;
zBrowse.Free;
end;
{--------------------------------------------------------------}
procedure TForm1.FormCreate(Sender: TObject);
begin
MOMenuFolder := LRJ_TMenuFolder.Create(self);
MOMenuFolder.OnClick := OnClickItem;
end;
{--------------------------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
var
  zPoint: TPoint;
begin
zPoint.X := 0;
zPoint.Y := Button1.Height;
zPoint := Button1.ClientToScreen(zPoint);
PopupMenu1.Items.Clear;
MOMenuFolder.RefreshList;
MOMenuFolder.ChargeToMenu(PopupMenu1.Items);
PopupMenu1.Popup(zPoint.X,zPoint.Y);
end;
{--------------------------------------------------------------}
procedure TForm1.FormDestroy(Sender: TObject);
begin
MOMenuFolder.Free;
end;
{--------------------------------------------------------------}
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex = 0 then MOMenuFolder.SmallIcon := true else MOMenuFolder.SmallIcon := false;
end;
{--------------------------------------------------------------}
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