📄 winampctrdemo1unit1.pas
字号:
unit WinAmpCtrDemo1Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, WinAmpControl,WinAmpCtr, ExtCtrls;
type
TForm1 = class(TForm)
WinAmpCtr1: TWinAmpCtr;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Panel3: TPanel;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Timer1: TTimer;
Lab_Artist: TLabel;
Lab_Album: TLabel;
Lab_Track: TLabel;
Lab_TrackNo: TLabel;
Lab_TrackName: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure BitBtn2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
OldTrackNo,OldNumOfTracks:Integer;
SeekBack,SeekForward:Boolean;
implementation
{$R *.DFM}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
winampctr1.DoSeekForward;
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
winampctr1.DoPrevTrack;
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
winampctr1.PlayState:=psPlay;
end;
procedure TForm1.BitBtn8Click(Sender: TObject);
begin
winampctr1.PlayState:=psStop;
end;
procedure TForm1.BitBtn9Click(Sender: TObject);
begin
winampctr1.PlayState:=psPause;
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
winampctr1.DoNextTrack;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
winampctr1.PlayState:=psPlay;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
//*******************************************************************************
//* Please note that this timer uses functions from the unit winampcontroll.dcu *
//* These funtions are not documented yet. It is my intension to wrap many of *
//* them into the component winampctr in later versions. In the mean time you *
//* can call them directly if you include winampcontroll in your uses clause *
//*******************************************************************************
VAR
TrackNo:Integer;
TrackFileName:String;
TrackNoStr:String;
ID3Data:Type_ID3Rec;
begin
If SeekBack then WinAmpCtr1.DoSeekBack ;
If SeekForward then WinAmpCtr1.DoSeekForward;
If OldNumOfTracks<>WA_NoOfTracksLoaded Then //Check if user changed Winamps tracklist
Begin
WA_WritePlayList; //Recreate external playlist
OldNumOfTracks:=WA_NoOfTracksLoaded;
end;
TrackNo:=WA_CurrentTrackNo;
If TrackNo<>OldTrackNo Then //If new track is playing update GUI with info
Begin
Str (TrackNo,TrackNoStr);
Lab_TrackNo.Caption:=TrackNoStr;
If WA_GetTrackFileName (TrackNo, TrackFileName) then //If track had an ID3 tag, display it
Begin
Lab_TrackName.Caption:=TrackFileName;
If GetID3Info (TrackFileName, ID3Data) then
Begin
Lab_Artist.Caption:=ID3Data.Artist;
Lab_Album.Caption:=ID3Data.Album;
Lab_Track.Caption:= ID3Data.Title;
End
Else
Begin
Lab_Artist.Caption:='No Data';
Lab_Album.Caption:='No Data';
Lab_Track.Caption:='No Data';
End;// If WA_GetTrackFileName
End; //If GetID3Info
OldTrackNo:=trackNo;
End; //If
end;
procedure TForm1.BitBtn2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
SeekBack:=True;
end;
procedure TForm1.BitBtn2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
SeekBack:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SeekBack:=False;
SeekForward:=False;
end;
procedure TForm1.BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
SeekForward:=True;
end;
procedure TForm1.BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
SeekForward:=False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -