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

📄 unit_list.pas

📁 这是一个用Delphi开发的MP3播放器的源码
💻 PAS
字号:
unit Unit_List;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls,ShellApi,Buttons, StdCtrls, CheckLst;

type
  TFrm_List = class(TForm)
    Image: TImage;
    CheckListBox: TCheckListBox;
    Sp_Add: TSpeedButton;
    Sp_Load: TSpeedButton;
    Sp_Play: TSpeedButton;
    Sp_Quit: TSpeedButton;
    Sp_Save: TSpeedButton;
    OpenDialog: TOpenDialog;
    SaveDialog: TSaveDialog;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Sp_AddClick(Sender: TObject);
    procedure Sp_QuitClick(Sender: TObject);
    procedure CheckListBoxDblClick(Sender: TObject);
    procedure Sp_LoadClick(Sender: TObject);
    procedure Sp_SaveClick(Sender: TObject);
    procedure Sp_PlayClick(Sender: TObject);
    procedure DragDropFiles(var msg:TMessage);message WM_DROPFILES;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_List: TFrm_List;

implementation

uses Unit_Main;

{$R *.dfm}

procedure TFrm_List.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
     Action:=CaFree;
     Frm_Main.List_Boot:=False;
except
     exit;
   end;
end;

procedure TFrm_List.Sp_AddClick(Sender: TObject);
begin
try
    Frm_Main.Menu_OpenM.Click;
    Frm_List.CheckListBox.Items:=Frm_Main.CheckListBox.Items;
except
     exit;
   end;
end;

procedure TFrm_List.Sp_QuitClick(Sender: TObject);
begin
try
     Frm_List.Close;
except
     exit;
   end;
end;

procedure TFrm_List.CheckListBoxDblClick(Sender: TObject);
begin
try
     Frm_Main.Play_Sounder(Frm_List.CheckListBox.Items.Strings[Frm_List.CheckListBox.ItemIndex]);
     Frm_Main.CheckListBox.ItemIndex:=Frm_List.CheckListBox.ItemIndex;
except
     exit;
   end;
end;

procedure TFrm_List.Sp_LoadClick(Sender: TObject);
begin
try
     Frm_List.OpenDialog.Title := Frm_Main.Caption;
     if Frm_List.OpenDialog.Execute then
        Frm_Main.CheckListBox.Items.LoadFromFile(Frm_List.OpenDialog.FileName);

        Frm_List.CheckListBox.Items:=Frm_Main.CheckListBox.Items;
except
     exit;
   end;
end;

procedure TFrm_List.Sp_SaveClick(Sender: TObject);
begin
try
     Frm_List.SaveDialog.Title := Frm_Main.Caption;
     if Frm_List.SaveDialog.Execute then
        Frm_List.CheckListBox.Items.SaveToFile(Frm_List.SaveDialog.FileName);
except
     exit;
   end;
end;

procedure TFrm_List.Sp_PlayClick(Sender: TObject);
begin
try
     Frm_Main.Play_Sounder(Frm_List.CheckListBox.Items.Strings[Frm_List.CheckListBox.ItemIndex]);
     Frm_Main.CheckListBox.ItemIndex:=Frm_List.CheckListBox.ItemIndex;
except
     exit;
   end;
end;

procedure TFrm_List.DragDropFiles(var msg: TMessage);
var
     char1:array[0..128]of char; // 缓冲区
     char2:pchar;
     i,Sum:Integer;
begin
try
        // 获得拖拉的文件数目,该功能由第二个参数决定
        sum:=DragQueryFile(msg.WParam,$FFFFFFFF,nil,0);
        // 显示拖拉文件的数目
//        Label1.caption:='拖过来的文件有'+inttostr(Sum)+'个。';
        char2:=@char1;
        for i:=0 to Sum-1 do
              begin
                // 获取第i 个拖拉文件的名字,并保存在缓冲区c h a r 2 中
                DragQueryFile(msg.WParam,i,char2,128);
                // 在M e m o 1 中显示拖拉文件的名字

                Frm_List.CheckListBox.Items.Add(char2);
                Frm_Main.CheckListBox.Items.Add(char2);
                end;
                // 释放应用程序为传递文件名而开辟的内存空间
                DragFinish(msg.WParam);
except
     exit;
end;     
end;

procedure TFrm_List.FormCreate(Sender: TObject);
begin
     DragAcceptFiles(Handle,True);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -