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

📄 cdedit.pas

📁 一个音乐 CD 播放程序
💻 PAS
字号:
unit Cdedit;

interface

uses SysUtils, WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons,
  StdCtrls, ExtCtrls, About;

type
  TCDEditForm = class(TForm)
	 Bevel1: TBevel;
	 Label3: TLabel;
	 Label1: TLabel;
	 TrackTotal: TLabel;
	 Label2: TLabel;
	 Length: TLabel;
	 EdTitle: TEdit;
	 Label4: TLabel;
	 EdArtist: TEdit;
	 Bevel2: TBevel;
	 TrackNo: TLabel;
	 Label7: TLabel;
	 TrackLength: TLabel;
	 EdTrack: TEdit;
	 TrackList: TListBox;
	 Label8: TLabel;
    AboutBtn: TButton;
    OKBtn: TButton;
    CancelBtn: TButton;
	 procedure FormShow(Sender: TObject);
	 procedure TrackListClick(Sender: TObject);
	 procedure EdTitleExit(Sender: TObject);
	 procedure EdArtistExit(Sender: TObject);
	 procedure EdTrackExit(Sender: TObject);
	 procedure AboutBtnClick(Sender: TObject);
	procedure EdTrackKeyDown(Sender: TObject; var Key: Word;
	  Shift: TShiftState);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
	 { Private declarations }
  public
	 { Public declarations }
  end;

  var CDEditForm: TCDEditForm;

function min(a,b: integer): integer;
function max(a,b: integer): integer;

implementation
uses cd;
{$R *.DFM}

procedure TCDEditForm.FormShow(Sender: TObject);
var
	lp: integer;
begin
	EdTitle.Text:=Cd.GlobalCD.CDTitle;
	TrackTotal.Caption:=inttostr(CD.GlobalCD.TotalTracks);
	Length.Caption:=MilliToTime(CD.GlobalCD.CDLength);
	EdTitle.Text:=CD.GlobalCD.CDTitle;
	EdArtist.Text:=CD.GlobalCD.Artist;
	TrackList.Clear;
	for lp:=1 to CD.GlobalCD.TotalTracks do
	begin
		TrackList.Items.Add(zerofill(2,inttostr(lp))+':' +
			CD.GlobalCD.TrackDetail[lp].TrackTitle);
	end;
	TrackList.ItemIndex:=0;
	TrackNo.Caption:='1';
	TrackLength.Caption:=MilliToTime(CD.GlobalCD.TrackDetail[1].TrackLength);
	EdTrack.Text:=CD.GlobalCD.TrackDetail[1].TrackTitle;
   EdTitle.Setfocus;
end;

procedure TCDEditForm.TrackListClick(Sender: TObject);
var
	i: integer;
begin
	i:=TrackList.ItemIndex+1;
	TrackNo.Caption:=inttostr(i);
	TrackLength.Caption:=MilliToTime(CD.GlobalCD.TrackDetail[i].TrackLength);
	EdTrack.Text:=CD.GlobalCD.TrackDetail[i].TrackTitle;
   EdTrack.SetFocus;
end;

procedure TCDEditForm.EdTitleExit(Sender: TObject);
begin
	CD.GlobalCD.CDTitle:=EDTitle.Text;
end;

procedure TCDEditForm.EdArtistExit(Sender: TObject);
begin
	CD.GlobalCD.Artist:=EdArtist.Text;
end;

procedure TCDEditForm.EdTrackExit(Sender: TObject);
var
	i: integer;
begin
	i:=Tracklist.itemindex;
	CD.GlobalCD.TrackDetail[i+1].TrackTitle:=
		EdTrack.Text;
	TrackList.Items.strings[i]:=zerofill(2,inttostr(i+1))+':' +
			CD.GlobalCD.TrackDetail[i+1].TrackTitle;
	tracklist.itemindex:=i;
end;

procedure TCDEditForm.AboutBtnClick(Sender: TObject);
begin
	CDAbout.ShowModal;
end;

procedure TCDEditForm.EdTrackKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
	case Key of
		40: begin
			TrackList.ItemIndex:=min(TrackList.ItemIndex+1,TrackList.Items.Count);
			TrackListClick(Self);
			key:=0;
		end;
		38: begin
			TrackList.ItemIndex:=max(TrackList.ItemIndex-1,0);
			TrackListClick(Self);
			key:=0;
		end;
	end;
end;

function min(a,b: integer): integer;
begin
	if a<b then min:=a
	else min:=b;
end;

function max(a,b: integer): integer;
begin
	if a>b then max:=a
	else max:=b;
end;

procedure TCDEditForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
	if Shift=[ssAlt] then
	begin
		case Key of
			67 {c}: EdTitle.SetFocus;
			82 {r}: EdArtist.SetFocus;
			84 {t}: EdTrack.SetFocus;
		end;
	end;
end;

end.

⌨️ 快捷键说明

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