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

📄 winampctrdemo1unit1.pas

📁 WinAmp Control A Component that can control Winamp.
💻 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 + -