📄 main.pas
字号:
unit Main;
interface
uses
Windows, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Buttons, ExtCtrls, Spin, Menus, dcDiskScanner,
dcInternal, dcStdDialogs, dcBrowseDialog, dcDiskInfo, dcFileInfo,
dcShellProperties, dcFileAssociation, dcShellIcon, dcShellLink,
dcFileCRC, dcEdits, dcFolderView, dcFolderMonitor,
dcSystemImageList, dcComCtrls;
type
TForm1 = class(TForm)
PageControl: TPageControl;
DiskScannerSheet: TTabSheet;
MultiDiskScannerSheet: TTabSheet;
OthersSheet: TTabSheet;
Panel2: TPanel;
MultiDiskScannerSearch: TBitBtn;
MultiDiskScannerStop: TBitBtn;
Panel3: TPanel;
Splitter2: TSplitter;
Panel1: TPanel;
Splitter1: TSplitter;
GroupBox1: TGroupBox;
IncludeList: TListView;
Panel4: TPanel;
Label1: TLabel;
Add1: TBitBtn;
Delete1: TBitBtn;
GroupBox2: TGroupBox;
ExcludeList: TListView;
Panel5: TPanel;
Label2: TLabel;
Add2: TBitBtn;
Delete2: TBitBtn;
GroupBox3: TGroupBox;
ResultsList: TListView;
Panel6: TPanel;
DiskScannerSearch: TBitBtn;
DiskScannerStop: TBitBtn;
GroupBox7: TGroupBox;
MaxMatchesSpin1: TSpinEdit;
UnlimitedCheck1: TCheckBox;
Panel7: TPanel;
Panel8: TPanel;
GroupBox4: TGroupBox;
DiskScannerResults: TListView;
Label3: TLabel;
Label4: TLabel;
SearchMaskEdit: TComboBox;
Panel9: TPanel;
GroupBox9: TGroupBox;
Label8: TLabel;
Label9: TLabel;
AnyTimeCheck: TCheckBox;
CreatedRadio: TRadioButton;
ModifiedRadio: TRadioButton;
SinceDate: TDateTimePicker;
TillDate: TDateTimePicker;
GroupBox6: TGroupBox;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
AnySizeCheck: TCheckBox;
AtLeastSpin: TSpinEdit;
AtMostSpin: TSpinEdit;
Panel10: TPanel;
GroupBox5: TGroupBox;
ReadOnlyCheck: TCheckBox;
HiddenCheck: TCheckBox;
SystemCheck: TCheckBox;
DirectoryCheck: TCheckBox;
ArchiveCheck: TCheckBox;
AnyCheck: TCheckBox;
NormalCheck: TCheckBox;
GroupBox10: TGroupBox;
IncludeSubfoldersCheck: TCheckBox;
IncludeHiddenSubfoldersCheck: TCheckBox;
StatusBar: TStatusBar;
GroupBox8: TGroupBox;
MaxMatchesSpin2: TSpinEdit;
UnlimitedCheck2: TCheckBox;
GroupBox11: TGroupBox;
DiskInfoView: TListView;
GroupBox12: TGroupBox;
GroupBox13: TGroupBox;
ListBox: TListBox;
Panel11: TPanel;
GetFileInfoBtn: TBitBtn;
IconsBox: TGroupBox;
LargeIcon: TImage;
SmallIcon: TImage;
Label10: TLabel;
Label11: TLabel;
DiskBrowserBtn: TBitBtn;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
BrowseForCombo: TComboBox;
SpecLocation: TComboBox;
Msg: TEdit;
ShowPathCheck: TCheckBox;
ShowAncCheck: TCheckBox;
ShowNetCheck: TCheckBox;
Label15: TLabel;
GetDiskInfo: TBitBtn;
TabSheet1: TTabSheet;
GroupBox14: TGroupBox;
Panel12: TPanel;
ExtIconsBox: TGroupBox;
ExtLargeIcon: TImage;
ExtSmallIcon: TImage;
Label16: TLabel;
Label17: TLabel;
ExtListBox: TListBox;
Label18: TLabel;
GetBtn: TBitBtn;
ExtEdit: TComboBox;
Panel13: TPanel;
InstallTestExtensionBtn: TButton;
UninstallTestExtensionBtn: TButton;
Label19: TLabel;
Label20: TLabel;
GroupBox15: TGroupBox;
ShListBox: TListBox;
Panel14: TPanel;
ShIconsBox: TGroupBox;
ShLargeIcon: TImage;
ShSmallIcon: TImage;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
GetShellIconBtn: TBitBtn;
DereferenceBox: TCheckBox;
LinkBox: TCheckBox;
OpenBox: TCheckBox;
SelectedBox: TCheckBox;
TabSheet2: TTabSheet;
GroupBox16: TGroupBox;
GroupBox17: TGroupBox;
Panel15: TPanel;
GetShortcutInfoBtn: TBitBtn;
ShortcutIconsBox: TGroupBox;
ShortcutLargeIcon: TImage;
ShortcutSmallIcon: TImage;
Label24: TLabel;
Label25: TLabel;
ShortcutListBox: TListBox;
GroupBox18: TGroupBox;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
SaveShellLinkBtn: TBitBtn;
RunParamsEdit: TEdit;
WorkingDirEdit: TEdit;
Label26: TLabel;
ShowFilesCheck: TCheckBox;
GroupBox19: TGroupBox;
CRCMethodCombo: TComboBox;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
CRCResult: TEdit;
Label33: TLabel;
CRCResultHex: TEdit;
DiskScannerSuspended: TCheckBox;
MultiDiskScannerSuspended: TCheckBox;
StartFolder: TdcFolderEdit;
ShObjectEdit: TdcFolderEdit;
CRCFilenameEdit: TdcFileEdit;
LinkTargetEdit: TdcFileEdit;
FolderMonitorSheet: TTabSheet;
Panel16: TPanel;
Label34: TLabel;
dcFolderEdit1: TdcFolderEdit;
GroupBox20: TGroupBox;
Panel18: TPanel;
ViewStyleComboBox: TComboBox;
Label35: TLabel;
Panel17: TPanel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
UpBtn: TSpeedButton;
dcDiskScanner: TdcDiskScanner;
StartFolderBrowser: TdcBrowseDialog;
dcSystemImageList1: TdcSystemImageList;
dcMultiDiskScanner: TdcMultiDiskScanner;
dcBrowseDialog: TdcBrowseDialog;
dcOpenDialog: TdcOpenDialog;
dcOpenFileDialog: TdcOpenDialog;
dcOpenShortcutDialog: TdcOpenDialog;
dcSaveShortcutDialog: TdcSaveDialog;
dcFileInfo: TdcFileInfo;
dcShellProperties: TdcShellProperties;
dcShellLink: TdcShellLink;
dcFileAssociation1: TdcFileAssociation;
dcFileCRC1: TdcFileCRC;
dcShellIcon: TdcShellIcon;
Animate1: TAnimate;
dcDiskInfo1: TdcDiskInfo;
dcFolderMonitor1: TdcFolderMonitor;
ShowFileExtensionsBox: TCheckBox;
ShowFoldersBox: TCheckBox;
SizeBox: TCheckBox;
TypeBox: TCheckBox;
Label36: TLabel;
MaskComboBox: TComboBox;
ModifiedBox: TCheckBox;
AttributesBox: TCheckBox;
PopupMenu1: TPopupMenu;
Refresh1: TMenuItem;
N1: TMenuItem;
CreateFolder1: TMenuItem;
Folder1: TMenuItem;
Shortcut1: TMenuItem;
N2: TMenuItem;
Properties1: TMenuItem;
N3: TMenuItem;
View1: TMenuItem;
LargeIcons1: TMenuItem;
SmallIcons1: TMenuItem;
List1: TMenuItem;
Report1: TMenuItem;
ArrangeIcons1: TMenuItem;
byName1: TMenuItem;
byType1: TMenuItem;
bySize1: TMenuItem;
byDate1: TMenuItem;
N4: TMenuItem;
Ascending1: TMenuItem;
Descending1: TMenuItem;
dcFolderListView1: TdcFolderListView;
FindAllFoldersCheck: TCheckBox;
procedure FormShow(Sender: TObject);
procedure AnySizeCheckClick(Sender: TObject);
procedure AnyTimeCheckClick(Sender: TObject);
procedure NormalCheckClick(Sender: TObject);
procedure AnyCheckClick(Sender: TObject);
procedure DiskScannerSearchClick(Sender: TObject);
procedure DiskScannerStopClick(Sender: TObject);
procedure UnlimitedCheck1Click(Sender: TObject);
procedure UnlimitedCheck2Click(Sender: TObject);
procedure dcDiskScannerFileFound(Sender: TObject; FileName,
FileType: String; FileSize: Extended; FileTime: TDateTime;
FileAttributes: TdcScanAttributes;
LargeIcon, SmallIcon: TIcon; SysImageIndex: Integer;
TotalFiles: Integer; TotalSize: Extended);
procedure dcDiskScannerScanFolder(Sender: TObject; Folder: String);
procedure dcDiskScannerScanDone(Sender: TObject; TotalFiles: Integer;
TotalSize: Extended; ElapsedTimeInSeconds: Integer);
procedure FormResize(Sender: TObject);
procedure Add1Click(Sender: TObject);
procedure Delete1Click(Sender: TObject);
procedure Add2Click(Sender: TObject);
procedure Delete2Click(Sender: TObject);
procedure MultiDiskScannerSearchClick(Sender: TObject);
procedure MultiDiskScannerStopClick(Sender: TObject);
procedure dcMultiDiskScannerFileFound(Sender: TObject; FileName,
FileType: String; FileSize: Extended; FileTime: TDateTime;
FileAttributes: TdcScanAttributes;
LargeIcon, SmallIcon: TIcon; SysImageIndex: Integer;
TotalFiles: Integer; TotalSize: Extended);
procedure dcMultiDiskScannerScanFolder(Sender: TObject; Folder: String);
procedure dcMultiDiskScannerScanDone(Sender: TObject;
TotalFiles: Integer; TotalSize: Extended;
ElapsedTimeInSeconds: Integer);
procedure dcMultiDiskScannerExcludingBegin(Sender: TObject);
procedure dcMultiDiskScannerExcludingEnd(Sender: TObject);
procedure IncludeListChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure ExcludeListChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure GetFileInfoBtnClick(Sender: TObject);
procedure DiskBrowserBtnClick(Sender: TObject);
procedure DiskScannerResultsDblClick(Sender: TObject);
procedure DiskScannerResultsMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure GetDiskInfoClick(Sender: TObject);
procedure GetBtnClick(Sender: TObject);
procedure InstallTestExtensionBtnClick(Sender: TObject);
procedure UninstallTestExtensionBtnClick(Sender: TObject);
procedure GetShellIconBtnClick(Sender: TObject);
procedure DereferenceBoxClick(Sender: TObject);
procedure LinkBoxClick(Sender: TObject);
procedure OpenBoxClick(Sender: TObject);
procedure SelectedBoxClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure GetShortcutInfoBtnClick(Sender: TObject);
procedure SaveShellLinkBtnClick(Sender: TObject);
procedure CRCMethodComboChange(Sender: TObject);
procedure DiskScannerSuspendedClick(Sender: TObject);
procedure MultiDiskScannerSuspendedClick(Sender: TObject);
procedure StartFolderExit(Sender: TObject);
procedure ShObjectEditDlgOk(Sender: TObject);
procedure CRCFilenameEditDlgOk(Sender: TObject);
procedure dcFolderEdit1DlgOk(Sender: TObject);
procedure ViewStyleComboBoxChange(Sender: TObject);
procedure dcMultiDiskScannerFolderNotExist(Sender: TObject;
Folder: String);
procedure dcFolderListView1FolderChanged(Sender: TObject;
Folder: String);
procedure UpBtnClick(Sender: TObject);
procedure dcFolderListView1BeginUpdate(Sender: TObject);
procedure dcFolderListView1EndUpdate(Sender: TObject);
procedure dcFolderMonitor1Change(Sender: TObject);
procedure ShowFileExtensionsBoxClick(Sender: TObject);
procedure ShowFoldersBoxClick(Sender: TObject);
procedure SizeBoxClick(Sender: TObject);
procedure TypeBoxClick(Sender: TObject);
procedure MaskComboBoxChange(Sender: TObject);
procedure ModifiedBoxClick(Sender: TObject);
procedure AttributesBoxClick(Sender: TObject);
procedure Refresh1Click(Sender: TObject);
procedure Folder1Click(Sender: TObject);
procedure Shortcut1Click(Sender: TObject);
procedure Properties1Click(Sender: TObject);
procedure dcFolderListView1ColumnClick(Sender: TObject;
Column: TListColumn);
procedure byName1Click(Sender: TObject);
private
Excluding: Boolean;
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{$R Roger.res}
uses AddPath, dcUtils;
procedure TForm1.FormShow(Sender: TObject);
begin
TillDate.Date := Now;
BrowseForCombo.ItemIndex := 0;
SpecLocation.ItemIndex := 0;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
StatusBar.Panels[0].Width := Width - StatusBar.Panels[1].Width - StatusBar.Panels[2].Width;
IncludeList.Columns[0].Width := IncludeList.Width - 5;
ExcludeList.Columns[0].Width := ExcludeList.Width - 5;
end;
procedure TForm1.AnySizeCheckClick(Sender: TObject);
begin
Label5.Enabled := not AnySizeCheck.Checked;
AtLeastSpin.Enabled := not AnySizeCheck.Checked;
Label6.Enabled := not AnySizeCheck.Checked;
AtMostSpin.Enabled := not AnySizeCheck.Checked;
Label7.Enabled := not AnySizeCheck.Checked;
end;
procedure TForm1.AnyTimeCheckClick(Sender: TObject);
begin
CreatedRadio.Enabled := not AnyTimeCheck.Checked;
ModifiedRadio.Enabled := not AnyTimeCheck.Checked;
Label8.Enabled := not AnyTimeCheck.Checked;
SinceDate.Enabled := not AnyTimeCheck.Checked;
Label9.Enabled := not AnyTimeCheck.Checked;
TillDate.Enabled := not AnyTimeCheck.Checked;
end;
procedure TForm1.NormalCheckClick(Sender: TObject);
begin
with dcDiskScanner do
begin
SearchAttributes := [];
if NormalCheck.Checked then
SearchAttributes := SearchAttributes + [saNormal]
else
AnyCheck.Checked := False;
if ArchiveCheck.Checked then
SearchAttributes := SearchAttributes + [saArchive]
else
AnyCheck.Checked := False;
if ReadOnlyCheck.Checked then
SearchAttributes := SearchAttributes + [saReadOnly]
else
AnyCheck.Checked := False;
if HiddenCheck.Checked then
SearchAttributes := SearchAttributes + [saHidden]
else
AnyCheck.Checked := False;
if SystemCheck.Checked then
SearchAttributes := SearchAttributes + [saSystem]
else
AnyCheck.Checked := False;
if DirectoryCheck.Checked then
SearchAttributes := SearchAttributes + [saDirectory]
else
AnyCheck.Checked := False;
if AnyCheck.Checked then
SearchAttributes := SearchAttributes + [saAny];
NormalCheck.Checked := (saNormal in SearchAttributes);
ArchiveCheck.Checked := (saArchive in SearchAttributes);
ReadOnlyCheck.Checked := (saReadOnly in SearchAttributes);
HiddenCheck.Checked := (saHidden in SearchAttributes);
SystemCheck.Checked := (saSystem in SearchAttributes);
DirectoryCheck.Checked := (saDirectory in SearchAttributes);
AnyCheck.Checked := (saAny in SearchAttributes);
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -