|
|
|

| | | | | | | | |  |
 | 
 | Code source : unité LRJ_WinRecycleBin |  |

|  |
 | |  |

|
Description : cette unité contient l'objet LRJ_TWinRecycleBin qui offre
des fonctionnalités similaires aux fonctionnalités de la corbeille Windows.
L'unité est livrée avec une application de démonstration (
voir description plus loin
) qui illustre le fonctionnement de l'objet LRJ_TWinRecycleBin. Les codes de l'application de
démonstration sont visibles à la fin de cette page en tant qu'exemple d'utilisation.
L'unité LRJ_WinRecycleBin met en oeuvre les fonctions de Windows suivantes :
|
|
ExtractIconEx
CopyIcon
DestroyIcon
ShellExecute
SHEmptyRecycleBin
SHQueryRecycleBin
|
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, SysUtils, ShellAPI,
LRJ_WindowsPlus,
LRJ_WinDrives et
LRJ_WinTrackChangeDir.
Version : 1 du 02.01.2009
Auteur : Laurent Hède
Copyright : LorenJo
Nombre de lignes : 388
Réalisée sous : Delphi 6
Systèmes compatibles : NT4, 2000, XP, Vista, serveurs
Prix : 88.00 € H.T.
Déclarations publiques de l'unité :
unit LRJ_WinRecycleBin;
interface
uses
Windows,
Classes,
SysUtils,
ShellAPI,
LRJ_WindowsPlus,
LRJ_WinDrives,
LRJ_WinTrackChangeDir;
...........
function LRJ_SHQueryRecycleBin(RootPath: string; var SHQueryRBInfo: LRJ_TSHQueryRBInfo): HRESULT;
function LRJ_SHEmptyRecycleBin(hwnd: HWND ; RootPath: string ; dwFlags: DWORD ): HRESULT;
...........
//----------------OBJET-----------------------
LRJ_TWinRecycleBin = class(TObject)
...........
procedure Clean(const AFlag: DWORD = 0); //flag peut être une combinaison de SHERB_NOCONFIRMATION,
// SHERB_NOPROGRESSUI et SHERB_NOSOUND
procedure Show; // ouvre le gestionnaire de fichier sur la corbeille comme windows
property RootPath: string read MORootPath write SetRootPath; // '' par défaut pour surveiller les corbeilles
// de tous les disques en même temps. Si on spécifie un lecteur
// (exemple c:\), ne surveille que la corbeille du disque c. Si on veut
// surveiller une corbeille se situant à c:\aaa\bbb\recycler ou recycled,
// attribuer c:\aaa\bbb ou c:\aaa\bbb\ à RootPath
property TrackChanges: boolean read GetIfTrackChanges write SetIfTrackChanges; // attribuer true pour commencer la
// surveillance, false pour la terminer
property SizeOfItems: int64 read GetSizeOfItems;
property CountItem: int64 read GetCountItem;
property SmallIconEmpty: HICON read GetSmallIconEmpty; // détruire HICON par DestroyIcon
property SmallIconFull: HICON read GetSmallIconFull; // détruire HICON par DestroyIcon
property BigIconEmpty: HICON read GetBigIconEmpty; // détruire HICON par DestroyIcon
property BigIconFull: HICON read GetBigIconFull; // détruire HICON par DestroyIcon
property OnChange: TNotifyEvent read MOOnChange write MOOnChange;
end;//-----------FIN--------------------------
|
Application de démonstration

L'image de la corbeille correspond à l'image utilisée par Windows pour représenter la
corbeille. Elle se modifie lorsque la corbeille est vide ou contient quelque chose. Les
2 TEdit contiennent le nombre de fichiers ou dossiers dans la corbeille et leur taille en
octets.
Lorsqu'on clique sur "Show", on fait apparaître la fenêtre du gestionnaire de fichiers Windows
correspondant à la corbeille.
Lorsqu'on clique sur "Clean", on vide la corbeille.
Exemples d'utilisations
Codes de l'application de démonstration
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls,
LRJ_WinRecycleBin;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Image1: TImage;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
MOCorbeille: LRJ_TWinRecycleBin;
procedure OnChangeCorbeille(Sender: TObject);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{--------------------------------------------------------------}
procedure TForm1.FormCreate(Sender: TObject);
begin
MOCorbeille := LRJ_TWinRecycleBin.Create;
if MOCorbeille.CountItem > 0 then
Image1.Picture.Icon.Handle := MOCorbeille.BigIconFull
else
Image1.Picture.Icon.Handle := MOCorbeille.BigIconEmpty;
edit1.Text := IntToStr(MOCorbeille.CountItem);
edit2.Text := IntToStr(MOCorbeille.SizeOfItems);
MOCorbeille.OnChange := OnChangeCorbeille;
MOCorbeille.TrackChanges := true;
end;
{--------------------------------------------------------------}
procedure TForm1.FormDestroy(Sender: TObject);
begin
MOCorbeille.Free;
end;
{--------------------------------------------------------------}
procedure TForm1.OnChangeCorbeille(Sender: TObject);
begin
if MOCorbeille.CountItem > 0 then
Image1.Picture.Icon.Handle := MOCorbeille.BigIconFull
else
Image1.Picture.Icon.Handle := MOCorbeille.BigIconEmpty;
edit1.Text := IntToStr(MOCorbeille.CountItem);
edit2.Text := IntToStr(MOCorbeille.SizeOfItems);
end;
{--------------------------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
begin
MOCorbeille.Show;
end;
{--------------------------------------------------------------}
procedure TForm1.Button2Click(Sender: TObject);
begin
MOCorbeille.Clean;
end;
end.
|
Vous n'avez pas trouvé d'exemple répondant à votre problématique ?
Cliquez sur ce lien.
|
|
 |
 | |  |
|
|