📄 u_mp3copy.pas
字号:
unit u_MP3Copy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, dxNavBarCollns,
dxNavBarBase, dxNavBar, ExtCtrls, StdCtrls, ShellCtrls, PDJButton, Menus,
RzListVw, RzShellCtrls, RzPanel, RzButton,shellapi, MPlayer,MP3Info,Clipbrd,CommUnit,
ActnList, ADODB, cxLabel, cxTextEdit,IniFiles;
type
TFrm_MP3Copy = class(TForm)
ImageList1: TImageList;
Panel1: TPanel;
Panel2: TPanel;
dxNavBar1: TdxNavBar;
dxNavBar1Group2: TdxNavBarGroup;
dxNavBar1Group1: TdxNavBarGroup;
dxNavBar1Item1: TdxNavBarItem;
dxNavBar1Item2: TdxNavBarItem;
dxNavBar1Item3: TdxNavBarItem;
dxNavBar1Item4: TdxNavBarItem;
dxNavBar1Item5: TdxNavBarItem;
dxNavBar1Item6: TdxNavBarItem;
dxNavBar1Item7: TdxNavBarItem;
dxNavBar1Item8: TdxNavBarItem;
dxNavBar1Item9: TdxNavBarItem;
Panel3: TPanel;
Panel4: TPanel;
Edit1: TEdit;
ComboBox1: TComboBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
PDJButton1: TPDJButton;
Panel5: TPanel;
dxNavBar1Group3: TdxNavBarGroup;
dxNavBar1Item10: TdxNavBarItem;
dxNavBar1Item11: TdxNavBarItem;
dxNavBar1Item12: TdxNavBarItem;
dxNavBar1Item13: TdxNavBarItem;
dxNavBar1Item14: TdxNavBarItem;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
RzShellList1: TRzShellList;
ImageList2: TImageList;
RzToolbar1: TRzToolbar;
BtnOpen: TRzToolButton;
BtnSave: TRzToolButton;
RzSpacer1: TRzSpacer;
BtnUpOneLevel: TRzToolButton;
BtnSelectFolder: TRzToolButton;
RzSpacer2: TRzSpacer;
BtnViewIcons: TRzToolButton;
BtnViewList: TRzToolButton;
BtnViewDetails: TRzToolButton;
BtnViewReport: TRzToolButton;
StatusBar1: TStatusBar;
N18: TMenuItem;
PDJButton2: TPDJButton;
PDJButton3: TPDJButton;
PDJButton4: TPDJButton;
PDJButton5: TPDJButton;
PDJButton6: TPDJButton;
ActionList1: TActionList;
Action1: TAction;
Action2: TAction;
Action3: TAction;
Action4: TAction;
Panel6: TPanel;
cxGrid2: TcxGrid;
cxGridDBTableView1: TcxGridDBTableView;
cxGridDBColumn7: TcxGridDBColumn;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
ImageList3: TImageList;
Action5: TAction;
Action6: TAction;
Action7: TAction;
Action8: TAction;
Action9: TAction;
Action10: TAction;
Action11: TAction;
Action12: TAction;
Action14: TAction;
DSQuery: TDataSource;
Query: TADOQuery;
Action13: TAction;
RzToolbar2: TRzToolbar;
RzToolButton1: TRzToolButton;
RzToolButton2: TRzToolButton;
RzToolButton3: TRzToolButton;
RzToolButton4: TRzToolButton;
RzSpacer3: TRzSpacer;
RzToolButton5: TRzToolButton;
RzToolButton6: TRzToolButton;
RzToolButton7: TRzToolButton;
RzToolButton8: TRzToolButton;
RzSpacer4: TRzSpacer;
RzToolButton9: TRzToolButton;
RzToolButton10: TRzToolButton;
ImageList4: TImageList;
Panel7: TPanel;
BtnRefresh: TRzToolButton;
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure BtnUpOneLevelClick(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure RzShellList1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
procedure N1Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure PopupMenu1Popup(Sender: TObject);
procedure PDJButton2Click(Sender: TObject);
procedure Action1Execute(Sender: TObject);
procedure Action2Execute(Sender: TObject);
procedure Action3Execute(Sender: TObject);
procedure Action4Execute(Sender: TObject);
procedure Action5Execute(Sender: TObject);
procedure Action9Execute(Sender: TObject);
procedure Action10Execute(Sender: TObject);
procedure Action11Execute(Sender: TObject);
procedure Action12Execute(Sender: TObject);
procedure Action6Execute(Sender: TObject);
procedure Action8Execute(Sender: TObject);
procedure Action7Execute(Sender: TObject);
procedure Action14Execute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Action12Update(Sender: TObject);
procedure Action11Update(Sender: TObject);
procedure Action10Update(Sender: TObject);
procedure Action9Update(Sender: TObject);
procedure PDJButton1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure DSQueryStateChange(Sender: TObject);
procedure PDJButton6Click(Sender: TObject);
procedure PDJButton5Click(Sender: TObject);
procedure QueryBeforePost(DataSet: TDataSet);
procedure QueryNewRecord(DataSet: TDataSet);
procedure QueryAfterScroll(DataSet: TDataSet);
procedure PDJButton4Click(Sender: TObject);
procedure PDJButton3Click(Sender: TObject);
procedure cxGridDBTableView1DblClick(Sender: TObject);
procedure BtnRefreshClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
aFreeAvailable:TLargeInteger;
aTotalSapce: TLargeInteger;
aCFreeSapce: TLargeInteger;
aFreeSapce: PLargeInteger;
{ Private declarations }
function GetCurDiskProperty(Directory: PChar):boolean;
function ShowFileProperties(FileName: String; Wnd: HWND):Boolean;
public
{ Public declarations }
end;
var
Frm_MP3Copy: TFrm_MP3Copy;
implementation
uses u_Dm,unit1;
{$R *.dfm}
function TFrm_MP3Copy.ShowFileProperties(FileName: String; Wnd: HWND):Boolean;
var
sfi: TSHELLEXECUTEINFO;
begin
with sfi do
begin
cbSize := SizeOf(sfi);
lpFile := PAnsiChar(FileName);
Wnd := Wnd;
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_INVOKEIDLIST or SEE_MASK_FLAG_NO_UI;
lpVerb := PAnsiChar('properties');
lpIDList := nil;
lpDirectory := nil;
nShow := 0;
hInstApp := 0;
lpParameters := nil;
dwHotKey := 0;
hIcon := 0;
hkeyClass := 0;
hProcess := 0;
lpClass := nil;
end;
Result := ShellExecuteEX(@sfi);
end;
function TFrm_MP3Copy.GetCurDiskProperty(Directory: PChar):boolean;
begin
Result := false;
aFreeAvailable := 0;
aTotalSapce := 0;
aFreeSapce := 0;
if GetDiskFreeSpaceEx(Directory,aFreeAvailable,aTotalSapce,aFreeSapce) then
begin
aFreeAvailable := (aFreeAvailable div 1024) div 1024;
aTotalSapce := (aTotalSapce div 1024) div 1024;
aCFreeSapce := aTotalSapce-aFreeAvailable;
Result := true;
Exit;
end;
end;
procedure TFrm_MP3Copy.N12Click(Sender: TObject);
begin
RzShellList1.ViewStyle := vsIcon;
BtnViewIcons.Down := true;
end;
procedure TFrm_MP3Copy.N13Click(Sender: TObject);
begin
RzShellList1.ViewStyle := vsSmallIcon;
BtnViewList.Down := true;
end;
procedure TFrm_MP3Copy.N14Click(Sender: TObject);
begin
RzShellList1.ViewStyle := vsList;
BtnViewDetails.Down := true;
end;
procedure TFrm_MP3Copy.N15Click(Sender: TObject);
begin
RzShellList1.ViewStyle := vsReport;
BtnViewReport.Down := true;
end;
procedure TFrm_MP3Copy.N3Click(Sender: TObject);
begin
RzShellList1.Refresh;
end;
procedure TFrm_MP3Copy.N7Click(Sender: TObject);
begin
RzShellList1.HeaderSortColumn := 1;
RzShellList1.SortColumn := 1;
end;
procedure TFrm_MP3Copy.N9Click(Sender: TObject);
begin
RzShellList1.HeaderSortColumn := 2;
RzShellList1.SortColumn := 2;
end;
procedure TFrm_MP3Copy.N10Click(Sender: TObject);
begin
RzShellList1.HeaderSortColumn := 3;
RzShellList1.SortColumn := 3;
end;
procedure TFrm_MP3Copy.N8Click(Sender: TObject);
begin
RzShellList1.HeaderSortColumn := 4;
RzShellList1.SortColumn := 4;
end;
procedure TFrm_MP3Copy.BtnUpOneLevelClick(Sender: TObject);
var ss: string;
begin
RzShellList1.GoUp(1);
//MP3Info1.Open;
//ss := MP3Info1.Artist;
//ss := MP3Info1.Album;
//GetFileVersionInfo
end;
procedure TFrm_MP3Copy.N16Click(Sender: TObject);
var aPath: string;
begin
aPath := RzShellList1.Folder.PathName;
ShowFileProperties(Pchar(aPath),handle)
end;
procedure TFrm_MP3Copy.RzShellList1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var aPath: string;
begin
aPath := RzShellList1.Folder.PathName;
aPath := Copy(aPath,1,3);
if GetCurDiskProperty(Pchar(aPath)) then
begin
dxNavBar1Item10.Caption := '盘符:'+Copy(aPath,1,1);
dxNavBar1Item11.Caption := '总大小:'+IntToStr(aTotalSapce)+'MB';
dxNavBar1Item12.Caption := '已用空间:'+IntToStr(aCFreeSapce)+'MB';
dxNavBar1Item13.Caption := '可用空间:'+IntToStr(aFreeAvailable)+'MB';
dxNavBar1Item14.Caption := '可容歌曲:'+IntToStr(aFreeAvailable div 5)+'首';
StatusBar1.Panels[1].Text := IntToStr(aTotalSapce)+'MB';
StatusBar1.Panels[3].Text := IntToStr(aCFreeSapce)+'MB';
StatusBar1.Panels[5].Text := IntToStr(aFreeAvailable)+'MB';
StatusBar1.Panels[7].Text := IntToStr(aFreeAvailable div 5)+'首';
end;
end;
procedure TFrm_MP3Copy.N1Click(Sender: TObject);
begin
RzShellList1.CreateNewFolder(true);
end;
procedure TFrm_MP3Copy.N18Click(Sender: TObject);
begin
//if
//SendMessage(Handle,WM_Paste, 0, 0 );
end;
procedure TFrm_MP3Copy.PopupMenu1Popup(Sender: TObject);
begin
if (Clipboard.HasFormat(CF_TEXT) or Clipboard.HasFormat(CF_OEMTEXT)) then
begin
N18.Enabled := false;
end;
end;
procedure TFrm_MP3Copy.PDJButton2Click(Sender: TObject);
begin
bdSearchFile(RzShellList1.Folder.PathName);
CloseProgressDlg;
end;
procedure TFrm_MP3Copy.Action1Execute(Sender: TObject);
begin
cxGridDBColumn1.SortIndex := -1;
if (cxGridDBColumn1.SortOrder=sonone) or (cxGridDBColumn1.SortOrder=soDescending) then
cxGridDBColumn1.SortOrder := soAscending
else
cxGridDBColumn1.SortOrder := soDescending;
end;
procedure TFrm_MP3Copy.Action2Execute(Sender: TObject);
begin
cxGridDBColumn2.SortIndex := -1;
if (cxGridDBColumn2.SortOrder=sonone) or (cxGridDBColumn2.SortOrder=soDescending) then
cxGridDBColumn2.SortOrder := soAscending
else
cxGridDBColumn2.SortOrder := soDescending;
end;
procedure TFrm_MP3Copy.Action3Execute(Sender: TObject);
begin
cxGridDBColumn4.SortIndex := -1;
if (cxGridDBColumn4.SortOrder=sonone) or (cxGridDBColumn4.SortOrder=soDescending) then
cxGridDBColumn4.SortOrder := soAscending
else
cxGridDBColumn4.SortOrder := soDescending;
end;
procedure TFrm_MP3Copy.Action4Execute(Sender: TObject);
begin
cxGridDBColumn3.SortIndex := -1;
if (cxGridDBColumn3.SortOrder=sonone) or (cxGridDBColumn3.SortOrder=soDescending) then
cxGridDBColumn3.SortOrder := soAscending
else
cxGridDBColumn3.SortOrder := soDescending;
end;
procedure TFrm_MP3Copy.Action5Execute(Sender: TObject);
begin
if DSQuery.State in [dsInsert,dsEdit] then
begin
if application.MessageBox('资料已经修改是否保存','提示',MB_ICONQUESTION+MB_YESNO)=IDYES then
begin
DSQuery.DataSet.Post;
end;
end;
Query.Insert;
end;
procedure TFrm_MP3Copy.Action9Execute(Sender: TObject);
begin
DSQuery.DataSet.First;
end;
procedure TFrm_MP3Copy.Action10Execute(Sender: TObject);
begin
DSQuery.DataSet.Prior;
end;
procedure TFrm_MP3Copy.Action11Execute(Sender: TObject);
begin
DSQuery.DataSet.Next;
end;
procedure TFrm_MP3Copy.Action12Execute(Sender: TObject);
begin
DSQuery.DataSet.Last;
end;
procedure TFrm_MP3Copy.Action6Execute(Sender: TObject);
var i: integer;
begin
try
if Application.MessageBox('确定要从数据库中删除所选的歌曲记录?','提示',MB_ICONQUESTION+MB_YESNO)=IDYES then
begin
if Application.MessageBox('是否从硬盘中删除歌曲文件?不删除点否','提示',MB_ICONQUESTION+MB_YESNO+MB_DEFBUTTON2)=IDYES then
begin
for i:=cxGridDBTableView1.DataController.RowCount-1 downto 0 do
begin
if cxGridDBTableView1.DataController.IsRowSelected(i) then
begin
if (not DeleteFile(trim(DSQuery.DataSet.FieldByName('Paht').AsString)+trim(DSQuery.DataSet.FieldByName('Name').AsString))) then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -