Subversion Repositories recyclebinunit

Rev

Rev 77 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. unit RecyclerListingMain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, ComCtrls, ExtCtrls;
  8.  
  9. type
  10.   TRecyclerListingMainForm = class(TForm)
  11.     TreeView1: TTreeView;
  12.     Panel1: TPanel;
  13.     Button1: TButton;
  14.     CheckBox1: TCheckBox;
  15.     procedure Button1Click(Sender: TObject);
  16.   private
  17.     { Private-Deklarationen }
  18.   public
  19.     { Public-Deklarationen }
  20.   end;
  21.  
  22. var
  23.   RecyclerListingMainForm: TRecyclerListingMainForm;
  24.  
  25. implementation
  26.  
  27. {$R *.dfm}
  28.  
  29. uses
  30.   RecBinUnit2, ContNrs, SIDUnit;
  31.  
  32. // TODO: SID Namen auflösen und dementsprechend anzeigen
  33. // TODO: zu jedem element mehr informationen anzeigen, nicht nur den ursprungsnamen
  34.  
  35. procedure TRecyclerListingMainForm.Button1Click(Sender: TObject);
  36. var
  37.   drives: TObjectList{TRbDrive};
  38.   iDrive: integer;
  39.   drive: TRbDrive;
  40.   nDrive: TTreeNode;
  41.  
  42.   bins: TObjectList{TRbRecycleBin};
  43.   iBin: integer;
  44.   bin: TRbRecycleBin;
  45.   nBin: TTreeNode;
  46.  
  47.   items: TObjectList{TRbRecycleBinItem};
  48.   iItem: integer;
  49.   item: TRbRecycleBinItem;
  50.   nItem: TTreeNode;
  51. begin
  52.   TreeView1.Items.Clear;
  53.   TreeView1.Items.BeginUpdate;
  54.   drives := TObjectList.Create(true);
  55.   bins := TObjectList.Create(true);
  56.   items := TObjectList.Create(true);
  57.   try
  58.     drives.Clear;
  59.     TRecycleBinManager.ListDrives(drives);
  60.     for iDrive := 0 to drives.Count - 1 do
  61.     begin
  62.       drive := drives.Items[iDrive] as TRbDrive;
  63.  
  64.       nDrive := TreeView1.Items.AddObject(nil, 'Drive '+drive.DriveLetter+': ' + GUIDToString(drive.VolumeGUID), drive);
  65.  
  66.       bins.Clear;
  67.       if CheckBox1.Checked then
  68.         drive.ListRecycleBins(bins, GetMySID)
  69.       else
  70.         drive.ListRecycleBins(bins);
  71.       for iBin := 0 to bins.Count - 1 do
  72.       begin
  73.         bin := bins.Items[iBin] as TRbRecycleBin;
  74.  
  75.         nBin := TreeView1.Items.AddChildObject(nDrive, bin.FileOrDirectory, bin);
  76.  
  77.         items.Clear;
  78.         bin.ListItems(items);
  79.         for iItem := 0 to items.Count - 1 do
  80.         begin
  81.           item := items.Items[iItem] as TRbRecycleBinItem;
  82.           nItem := TreeView1.Items.AddChildObject(nBin, item.Source, bin);
  83.         end;
  84.       end;
  85.     end;
  86.   finally
  87.     drives.Free;
  88.     bins.Free;
  89.     items.Free;
  90.     TreeView1.Items.EndUpdate;
  91.   end;
  92. end;
  93.  
  94. end.
  95.