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

📄 unit1.pas

📁 可读写MP3 TAG的DELPHI源代码
💻 PAS
字号:
unit Unit1;
                      {程序:斗鱼 2005.01   QQ:13335085}
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, id3v1;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    ComboBox1: TComboBox;
    Edit7: TEdit;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    LTitle: TLabel;
    LArtist: TLabel;
    LAlbum: TLabel;
    LYear: TLabel;
    LComment: TLabel;
    LTrack: TLabel;
    LGenre: TLabel;
    LFilePath: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure ClearID3v1;
  end;

var
  Form1: TForm1;
  ID3v1: TID3v1;
  
implementation

{$R *.dfm}

procedure TForm1.ClearID3v1;
begin
 Edit1.Text:='';
 Edit2.Text:='';
 Edit3.Text:='';
 Edit4.Text:='';
 Edit5.Text:='';
 Edit6.Text:='';
 ComboBox1.ItemIndex:=0;
 ComboBox1.Enabled:=false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if not OpenDialog1.Execute then exit;
begin
 ID3v1.ReadFromFile(OpenDialog1.FileName);
 Edit1.Text:=ID3v1.Title;
 Edit2.Text:=ID3v1.Artist;
 Edit3.Text:=ID3v1.Album;
 Edit4.Text:=ID3v1.Year;
 Edit5.Text:=ID3v1.Comment;
 Edit6.Text:=IntToStr(ID3v1.Track);
 Edit7.Text:=OpenDialog1.FileName;
 if ID3v1.GenreID < MAX_MUSIC_GENRES then
 ComboBox1.ItemIndex := ID3v1.GenreID + 1;
 ComboBox1.Enabled:=true;
 Button2.Enabled:=true;
 Button3.Enabled:=true;
 Button4.Enabled:=true;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Iterator: Integer;
begin
    ID3v1 := TID3v1.Create;
  for Iterator := 0 to MAX_MUSIC_GENRES - 1 do
    ComboBox1.Items.Add(MusicGenre[Iterator]);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
If MessageDlg ('警告:'+#13+'您要删除ID3标鉴吗?如果删除就不能恢复了!',mtConfirmation,[mbOK,mbCancel],0)=mrOK then
begin
   if (FileExists(Edit7.Text)) and
    (ID3v1.RemoveFromFile(Edit7.Text)) then ClearID3v1
  else ShowMessage('不能删除ID3标鉴: ' + Edit7.Text);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 ID3v1.ReadFromFile(Edit7.Text);
 Edit1.Text:=ID3v1.Artist;
 Edit2.Text:=ID3v1.Title;
 Edit3.Text:=ID3v1.Album;
 Edit4.Text:=ID3v1.Year;
 Edit5.Text:=ID3v1.Comment;
 Edit6.Text:=IntToStr(ID3v1.Track);
 ComboBox1.ItemIndex:=ID3v1.GenreID;
 ComboBox1.Enabled:=true;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  Value, Code: Integer;
begin
If MessageDlg ('您要把更改后的ID3标鉴信息保存到文件吗?',mtConfirmation,[mbYes,mbCancel],0)=mrYes then begin
begin
 ID3v1.Artist:=Trim(Edit1.Text);
 ID3v1.Title:=Trim(Edit2.Text);               //保存ID3
 ID3v1.Album:=Trim(Edit3.Text);
 ID3v1.Year:=Trim(Edit4.Text);
 ID3v1.Comment:=Trim(Edit5.Text);
 Val(Edit6.Text, Value, Code);
 if (Code = 0) and (Value > 0) then ID3v1.Track := Value
 else ID3v1.Track := 0;
 if ComboBox1.ItemIndex = 0 then ID3v1.GenreID := DEFAULT_GENRE
 else ID3v1.GenreID := ComboBox1.ItemIndex - 1;
 ID3v1.SaveToFile(Edit7.Text);
   end;
  end;
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ID3v1.Free;
end;

end.

⌨️ 快捷键说明

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