📄 cdedit.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 + -