unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MPlayer, ShellApi;
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure MediaPlayer1Notify(Sender: TObject);
private
public
Procedure AddToPlayList(s:string);
procedure PlayFile(songNumber: integer);
Procedure WMDropFiles (Var aMsg: tMessage); message WM_DROPFILES;
end;
var
Form1: TForm1;
playList: TStringList;
CurrentSong: integer = -1;
implementation
Procedure TForm1.WMDropFiles (Var aMsg: tMessage);
Var
Idx, Size, FileCount: Integer;
Filename: pChar;
Begin
Inherited;
FileCount := DragQueryFile (aMsg.WParam, $FFFFFFFF, nil, 255);
For Idx := 0 To FileCount -1 Do Begin
Size := DragQueryFile (aMsg.WParam, Idx, nil, 0) + 1;
Filename := StrAlloc (Size);
If DragQueryFile (aMsg.WParam, Idx, Filename, Size) = 1 Then
else AddToPlayList (pChar (Filename));
StrDispose (Filename);
End;
DragFinish (aMsg.WParam);
End;
Procedure TForm1.AddToPlayList(s:string);
begin
playList.Add(s);
ListBox1.Items.Add(s);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
mediaplayer1.FileName := 'C:\Inetpub\wwwroot\dirty.mp3';
mediaplayer1.Open;
mediaplayer1.play;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles (Handle, True);
playList := TStringList.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
playList.Free;
end;
procedure TForm1.PlayFile(songNumber: integer);
begin
if fileexists(Playlist.Strings[songNumber]) then begin
CurrentSong := songNumber;
mediaplayer1.Close;
mediaplayer1.FileName := Playlist.Strings[songNumber];
mediaplayer1.Open;
mediaplayer1.play;
end;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var i : integer;
begin
for i := 0 to listbox1.Count - 1 do
if listbox1.Selected[i] then break;
PlayFile(i);
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
if mediaplayer1.Position = mediaplayer1.Length then begin
Listbox1.Selected[currentSong] := false;
inc(currentSong);
if currentSong < Playlist.Count then
else currentsong := 0;
PlayFile(CurrentSong);
Listbox1.Selected[currentSong] := true;
end;
end;
end.
|