⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_mp3copy.pas

📁 delphi写的对学习delphi初级入门的数据编程很有用。是用用来查找硬盘mp3文件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -