//接上…… function TForm1.Inttostradd0(number:integer): string; begin if number<10 then Result:='0'+inttostr(number) else result:=inttostr(number); end;function TForm1.Subtime(time1,time2:longint): longint; var min1,min2:byte; sec1,sec2:byte; begin min1:=MSFREC(time1).Minutes; min2:=MSFREC(time2).Minutes; sec1:=MSFREC(time1).Seconds; sec2:=MSFREC(time2).Seconds; if sec2 > sec1 then begin inc(sec1,60); dec(min1); end; MSFREC(result).Minutes:=min1-min2; MSFREC(result).seconds:=sec1-sec2; end;function TForm1.Getdisplaystr:string; var playTime,trackTime,allTime : longint; outtime: longint; begin if DisplayTime=cdMusicPlay then begin MediaPlayer1.TimeFormat:=tfTMSF; outtime:=MediaPlayer1.position; TMSFREC(outtime).Tracks:=NowTrack; with TMSFREC(outtime) do result:='['+inttostradd0(tracks)+']<'+ inttostradd0(minutes)+':'+ inttostradd0(seconds)+'>'; end else if DisplayTime=cdMusicLeft then begin MediaPlayer1.TimeFormat:=tfMSF; playtime:=MediaPlayer1.position; tracktime:=mediaplayer1.TrackPosition[NowTrack]; outtime:=subtime(playtime,tracktime); outtime:=subtime(mediaplayer1.trackLength[NowTrack],outtime); // TMSFREC(outtime).seconds:=MSFREC(outtime).seconds; // TMSFREC(outtime).minutes:=MSFREC(outtime).minutes; // TMSFREC(outtime).Tracks:=NowTrack; with MSFREC(outtime) do result:='['+inttostradd0(Nowtrack)+']<'+ inttostradd0(minutes)+':'+ inttostradd0(seconds)+'>'; end else if DisplayTime=cdDiskLeft then begin MediaPlayer1.TimeFormat:=tfMSF; playtime:=MediaPlayer1.position; alltime:=mediaplayer1.length; outtime:=subtime(alltime,playtime); with MSFREC(outtime) do result:='[--]<'+ inttostradd0(minutes)+':'+ inttostradd0(seconds)+'>'; end else begin MediaPlayer1.TimeFormat:=tfMSF; outtime:=MediaPlayer1.position; with MSFREC(outtime) do result:='[--]<'+ inttostradd0(minutes)+':'+ inttostradd0(seconds)+'>'; end; end; procedure TForm1.PlayBtnClick(Sender: TObject); begin if NowState=cdNo then opencd; if NowState=cdNo then exit; mediaplayer1.play; Nowstate:=cdplay; playBtn.Enabled:=false; PlayMenu.Enabled:=false; pauseBtn.Enabled:=true; stopBtn.Enabled:=true; prevBtn.Enabled:=true; backBtn.Enabled:=true; stepBtn.Enabled:=true; nextBtn.Enabled:=true; ejectBtn.Enabled:=true; ejectMenu.Enabled:=true; SetHint; end;procedure TForm1.PausebtnClick(Sender: TObject); begin mediaplayer1.pause; NowState:=cdPause; Nowstep:=0; SetHint; playBtn.Enabled:=true; playMenu.Enabled:=true; pauseBtn.Enabled:=false; end;procedure TForm1.EjectBtnClick(Sender: TObject); begin mediaplayer1.eject; opencd; end;procedure TForm1.StopBtnClick(Sender: TObject); begin mediaplayer1.stop; mediaplayer1.rewind; playbtn.Enabled:=true; NowState:=cdStop; SetHint; end;procedure TForm1.PrevBtnClick(Sender: TObject); begin with combobox1,combobox1.Items do begin if itemindex>0 then itemindex:=itemindex-1 else itemindex:=count-1; end; ComboBox1Change(Sender); end; procedure TForm1.ComboBox1Change(Sender: TObject);begin dontseek:=true; if combobox1.ItemIndex=-1 then exit; if NowState=cdNo then exit; Nowtrack:=combobox1.ItemIndex+1; { if NowState=cdplay then begin mediaplayer1.Pause; SHowmessage('this'); end; } MediaPlayer1.stop; MediaPlayer1.open; mediaplayer1.position:=mediaplayer1.trackposition[NowTrack]; if NowState=cdplay then begin mediaplayer1.Play; Nowstate:=cdplay; end; dontseek:=false;end;procedure TForm1.NextBtnClick(Sender: TObject); begin with combobox1,combobox1.Items do begin if itemindex<count-1 then itemindex:=itemindex+1 else itemindex:=0; end; ComboBox1Change(Sender); end; procedure TForm1.BackBtnClick(Sender: TObject); var Nowpos : integer; begin with mediaplayer1 do begin Pause; TimeFormat:=tfTMSF; Nowpos:=position; with TMSFREC(Nowpos) do begin if Seconds<10 then begin Seconds:=Seconds+60-10; dec(Minutes); if Minutes<0 then begin Minutes:=0; Seconds:=0; end; end else Seconds:=Seconds-10; end; position:=Nowpos; if NowState = cdPlay then resume; end; end;procedure TForm1.StepBtnClick(Sender: TObject); var Nowpos : integer; begin with mediaplayer1 do begin Pause; TimeFormat:=tfTMSF; Nowpos:=position; with TMSFREC(Nowpos) do begin Seconds:=Seconds+10; if Seconds>60 then begin dec(Seconds,60); inc(Minutes); end; end; position:=Nowpos; if NowState = cdPlay then resume; end; end;procedure TForm1.ExitMenuClick(Sender: TObject); begin close; end;procedure TForm1.AboutMenuClick(Sender: TObject); begin showmessage('【TTG】小组');procedure TForm1.MusicLeftClick(Sender: TObject); begin DisplayTime:=cdMusicLeft; SetmenuCheck; end;procedure TForm1.MusicPlayClick(Sender: TObject); begin DisplayTime:=cdMusicPlay; SetmenuCheck; end;procedure TForm1.DiskPlayClick(Sender: TObject); begin DisplayTime:=cdDiskPlay; SetmenuCheck; end;procedure TForm1.DiskLeftClick(Sender: TObject); begin DisplayTime:=cdDiskLeft; SetmenuCheck; end;procedure TForm1.FormDestroy(Sender: TObject); begin if nowstate<>cdstop then mediaplayer1.Stop; mediaplayer1.Close; end;procedure TForm1.Image1Click(Sender: TObject); begin if DisplayTime= cdMusicLeft then DisplayTime:= cdMusicPlay else if DisplayTime= cdMusicPlay then DisplayTime:= cdDiskPlay else if DisplayTime= cdDiskPlay then DisplayTime:= cdDiskLeft else if DisplayTime= cdDiskLeft then DisplayTime:= cdMusicLeft; Setmenucheck; end;//接后……
//接上…… //我想这可得给多点分吧!!!呵呵 procedure TForm1.Timer1Timer(Sender: TObject); var Nowpos : longint; Tlength : longint; Llength,Lnowpos : longint; begin if NowState=cdNo then outputstr('',20,25,image1) else begin MediaPlayer1.TimeFormat:=tfTMSF; if NowState=cdPause then begin if NowStep=1 then begin NowStep:=0; outputstr('',20,25,image1); exit; end else NowStep:=1; end; outputstr(GetDisplaystr,20,25,image1); with Mediaplayer1 do begin TimeFormat:=tfTMSF; NowPos:=Position; Tlength:=trackLength[NowTrack]; with TMSFREC(Nowpos) do begin if Tracks<>NowTrack then begin combobox1.ItemIndex:=Tracks-1; // showmessage(inttostr(nowtrack)); // showmessage(inttostr(tracks)); if not(dontseek) then combobox1Change(Sender); end; lnowPos:=minutes*60+seconds; end; with TMSFREC(Tlength) do llength:=minutes*60+seconds; Musictrack.Min:=0; MusicTrack.Max:=llength; MusicTrack.Position:=lnowpos; TimeFormat:=tfMilliseconds; NowPos:=Position; Tlength:=Length; ProgressBar1.Min:=0; ProgressBar1.Max:=100; ProgressBar1.Position:=NowPos*100 div TLength; end; end; StatusBar1.Panels.Items[0].Text:=timetostr(time); end;procedure TForm1.LeftVolumeChange(Sender: TObject); var v,t: longint; begin t:=255-leftvolume.position; waveoutgetvolume(mediaplayer1.deviceid-1,@v); v:= ((t shl 8) or (v and $ffff0000)); waveoutsetvolume(mediaplayer1.DeviceID-1,v); end;procedure TForm1.FormCreate(Sender: TObject); var v: longint; begin LeftVolume.max:=255; RightVolume.max:=255; LeftVolume.min:=0; RightVolume.min:=0; waveoutgetvolume(mediaplayer1.deviceid-1,@v); LeftVolume.position:=255-hi(v); RightVolume.position:=255-hi(v shr 16); StatusBar1.Panels.Items[1].Width:=Progressbar1.Width; StatusBar1.Panels.Items[0].Width:=(ClientWidth -StatusBar1.Panels.Items[1].Width)-10 ; ProgressBar1.Parent:=StatusBar1 ; opencd; SetHint; DisPlayTime:=cdMusicLeft; Setmenucheck;end;procedure TForm1.RightVolumeChange(Sender: TObject); var v,t: longint; begin t:=255-Rightvolume.position; waveoutgetvolume(mediaplayer1.deviceid-1,@v); v:= ((t shl 24) or (v and $0000ffff)); waveoutsetvolume(mediaplayer1.deviceid-1,v); end;procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); begin ProgressBar1.BoundsRect := Rect; end; end.
//好的话,就多给我加点分吧!!!呵呵……
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, ExtCtrls, ComCtrls, Buttons, MPlayer,mmsystem;type
CDAUDIOSTATE=(cdNo,cdOpen,CdPause,cdPlay,cdStop);
CDDISPLAYTIME=(cdMusicLeft,cdDiskLeft,CDMusicPlay,cdDiskPlay);
TMSFREC=record
Tracks : byte;
Minutes : byte;
Seconds : byte;
Frames : byte;
end;
MSFREC=record
Minutes : byte;
Seconds : byte;
Frames : byte;
Unused : byte;
end;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
DiskMenu: TMenuItem;
ExitMenu: TMenuItem;
HelpMenu: TMenuItem;
AboutMenu: TMenuItem;
ViewMenu: TMenuItem;
MusicLeft: TMenuItem;
MusicPlay: TMenuItem;
DiskLeft: TMenuItem;
DiskPlay: TMenuItem;
Panel1: TPanel;
Image1: TImage;
Timer1: TTimer;
Label1: TLabel;
Label2: TLabel;
HintEdit: TEdit;
PlayBtn: TBitBtn;
Pausebtn: TBitBtn;
StopBtn: TBitBtn;
PrevBtn: TBitBtn;
BackBtn: TBitBtn;
StepBtn: TBitBtn;
NextBtn: TBitBtn;
EjectBtn: TBitBtn;
MusicTrack: TTrackBar;
LeftVolume: TTrackBar;
RightVolume: TTrackBar;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
MediaPlayer1: TMediaPlayer;
ComboBox1: TComboBox;
StatusBar1: TStatusBar;
ProgressBar1: TProgressBar;
EjectMenu: TMenuItem;
N1: TMenuItem;
PlayMenu: TMenuItem;
procedure PlayBtnClick(Sender: TObject);
procedure PausebtnClick(Sender: TObject);
procedure EjectBtnClick(Sender: TObject);
procedure StopBtnClick(Sender: TObject);
procedure PrevBtnClick(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure NextBtnClick(Sender: TObject);
procedure BackBtnClick(Sender: TObject);
procedure StepBtnClick(Sender: TObject);
procedure ExitMenuClick(Sender: TObject);
procedure AboutMenuClick(Sender: TObject);
procedure MusicLeftClick(Sender: TObject);
procedure MusicPlayClick(Sender: TObject);
procedure DiskPlayClick(Sender: TObject);
procedure DiskLeftClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure LeftVolumeChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RightVolumeChange(Sender: TObject);
procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
private
{ Private declarations }
NowState : CDAUDIOSTATE;
NowTrack : integer;
NowStep : integer;
DisplayTime : CDDISPLAYTIME;
dontseek : Boolean;
procedure opencd;
procedure setHint;
procedure outputstr(s:string;x0,y0:integer;image:TImage);
procedure setmenucheck;
function inttostradd0(number:integer): string;
function subtime(time1,time2:longint): longint;
function getdisplaystr:string; public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}procedure TForm1.opencd;
var
i,j: integer;
str1,str2 : string;
begin
mediaplayer1.open;
mediaplayer1.next;
mediaplayer1.rewind;
NowTrack:=1;
if mediaplayer1.error=0 then
begin
mediaplayer1.stop;
combobox1.items.clear;
for i:=1 to mediaplayer1.tracks do
begin
str1:='曲目' + inttostr(i);
str2:='<' + inttostr(i)+ '>';
for j:=1 to 40-length(str1)-length(str2) do
str1:=str1+' ';
combobox1.Items.add(str1+str2);
end;
combobox1.ItemIndex:=0;
Nowstate:=cdopen;
SetHint;
end
else
begin
combobox1.Items.clear;
NowState:=cdNo;
SetHint;
playBtn.Enabled:=true;
playMenu.Enabled:=true;
pauseBtn.Enabled:=false;
stopBtn.Enabled:=false;
prevBtn.Enabled:=false;
backBtn.Enabled:=false;
stepBtn.Enabled:=false;
nextBtn.Enabled:=false;
ejectBtn.Enabled:=true;
ejectMenu.Enabled:=true;
end;
end;procedure TForm1.SetHint;
begin
case NowState of
cdNo: HintEdit.Text:='没有CD唱片插入';
cdOpen: HintEdit.Text:='有CD唱片插入';
cdPause: HintEdit.Text:='暂停播放';
cdPlay: HintEdit.Text:='正在播放';
cdStop: HintEdit.Text:='停止播放';
end;
end;procedure TForm1.Outputstr(s:string;x0,y0:integer;Image:TImage);
var
rect1 : Trect;
begin
with image1 do
begin
Canvas.CopyMode :=cmBlackness;
rect1 := rect(0,0,width,height);
Canvas.CopyRect(rect1,canvas,rect1);
Canvas.Brush.Style :=bsclear;
Canvas.Font.Name:='黑体';
Canvas.Font.Color:=clYellow;
Canvas.Font.Style:=[fsbold];
Canvas.Font.Size:=20;
Canvas.TextOut(x0,y0,s);
end;
end;procedure TForm1.Setmenucheck;
begin
MusicLeft.Checked:=false;
MusicPlay.Checked:=false;
DiskLeft.Checked:=false;
DiskPlay.Checked:=false;
case displaytime of
cdMusicLeft: MusicLeft.Checked:=true;
cdMusicPlay: Musicplay.Checked:=true;
cdDiskLeft: DiskLeft.Checked:=true;
cdDiskPlay: DiskPlay.Checked:=true;
end;end;//接后……
function TForm1.Inttostradd0(number:integer): string;
begin
if number<10 then
Result:='0'+inttostr(number)
else
result:=inttostr(number);
end;function TForm1.Subtime(time1,time2:longint): longint;
var
min1,min2:byte;
sec1,sec2:byte;
begin
min1:=MSFREC(time1).Minutes;
min2:=MSFREC(time2).Minutes;
sec1:=MSFREC(time1).Seconds;
sec2:=MSFREC(time2).Seconds;
if sec2 > sec1 then
begin
inc(sec1,60);
dec(min1);
end;
MSFREC(result).Minutes:=min1-min2;
MSFREC(result).seconds:=sec1-sec2;
end;function TForm1.Getdisplaystr:string;
var
playTime,trackTime,allTime : longint;
outtime: longint;
begin
if DisplayTime=cdMusicPlay then
begin
MediaPlayer1.TimeFormat:=tfTMSF;
outtime:=MediaPlayer1.position;
TMSFREC(outtime).Tracks:=NowTrack;
with TMSFREC(outtime) do
result:='['+inttostradd0(tracks)+']<'+
inttostradd0(minutes)+':'+
inttostradd0(seconds)+'>';
end
else if DisplayTime=cdMusicLeft then
begin
MediaPlayer1.TimeFormat:=tfMSF;
playtime:=MediaPlayer1.position;
tracktime:=mediaplayer1.TrackPosition[NowTrack];
outtime:=subtime(playtime,tracktime);
outtime:=subtime(mediaplayer1.trackLength[NowTrack],outtime);
// TMSFREC(outtime).seconds:=MSFREC(outtime).seconds;
// TMSFREC(outtime).minutes:=MSFREC(outtime).minutes;
// TMSFREC(outtime).Tracks:=NowTrack;
with MSFREC(outtime) do
result:='['+inttostradd0(Nowtrack)+']<'+
inttostradd0(minutes)+':'+
inttostradd0(seconds)+'>';
end
else if DisplayTime=cdDiskLeft then
begin
MediaPlayer1.TimeFormat:=tfMSF;
playtime:=MediaPlayer1.position;
alltime:=mediaplayer1.length;
outtime:=subtime(alltime,playtime);
with MSFREC(outtime) do
result:='[--]<'+
inttostradd0(minutes)+':'+
inttostradd0(seconds)+'>';
end
else
begin
MediaPlayer1.TimeFormat:=tfMSF;
outtime:=MediaPlayer1.position;
with MSFREC(outtime) do
result:='[--]<'+
inttostradd0(minutes)+':'+
inttostradd0(seconds)+'>';
end;
end;
procedure TForm1.PlayBtnClick(Sender: TObject);
begin
if NowState=cdNo then
opencd;
if NowState=cdNo then
exit;
mediaplayer1.play;
Nowstate:=cdplay;
playBtn.Enabled:=false;
PlayMenu.Enabled:=false;
pauseBtn.Enabled:=true;
stopBtn.Enabled:=true;
prevBtn.Enabled:=true;
backBtn.Enabled:=true;
stepBtn.Enabled:=true;
nextBtn.Enabled:=true;
ejectBtn.Enabled:=true;
ejectMenu.Enabled:=true;
SetHint;
end;procedure TForm1.PausebtnClick(Sender: TObject);
begin
mediaplayer1.pause;
NowState:=cdPause;
Nowstep:=0;
SetHint;
playBtn.Enabled:=true;
playMenu.Enabled:=true;
pauseBtn.Enabled:=false;
end;procedure TForm1.EjectBtnClick(Sender: TObject);
begin
mediaplayer1.eject;
opencd;
end;procedure TForm1.StopBtnClick(Sender: TObject);
begin
mediaplayer1.stop;
mediaplayer1.rewind;
playbtn.Enabled:=true;
NowState:=cdStop;
SetHint;
end;procedure TForm1.PrevBtnClick(Sender: TObject); begin
with combobox1,combobox1.Items do
begin
if itemindex>0 then
itemindex:=itemindex-1
else
itemindex:=count-1;
end;
ComboBox1Change(Sender);
end;
procedure TForm1.ComboBox1Change(Sender: TObject);begin
dontseek:=true;
if combobox1.ItemIndex=-1 then
exit;
if NowState=cdNo then
exit;
Nowtrack:=combobox1.ItemIndex+1;
{ if NowState=cdplay then
begin
mediaplayer1.Pause;
SHowmessage('this');
end;
}
MediaPlayer1.stop;
MediaPlayer1.open;
mediaplayer1.position:=mediaplayer1.trackposition[NowTrack];
if NowState=cdplay then
begin
mediaplayer1.Play;
Nowstate:=cdplay;
end;
dontseek:=false;end;procedure TForm1.NextBtnClick(Sender: TObject); begin
with combobox1,combobox1.Items do
begin
if itemindex<count-1 then
itemindex:=itemindex+1
else
itemindex:=0;
end;
ComboBox1Change(Sender);
end;
procedure TForm1.BackBtnClick(Sender: TObject);
var
Nowpos : integer;
begin
with mediaplayer1 do
begin
Pause;
TimeFormat:=tfTMSF;
Nowpos:=position;
with TMSFREC(Nowpos) do
begin
if Seconds<10 then
begin
Seconds:=Seconds+60-10;
dec(Minutes);
if Minutes<0 then
begin
Minutes:=0;
Seconds:=0;
end;
end
else
Seconds:=Seconds-10;
end;
position:=Nowpos;
if NowState = cdPlay then
resume;
end;
end;procedure TForm1.StepBtnClick(Sender: TObject);
var
Nowpos : integer;
begin
with mediaplayer1 do
begin
Pause;
TimeFormat:=tfTMSF;
Nowpos:=position;
with TMSFREC(Nowpos) do
begin
Seconds:=Seconds+10;
if Seconds>60 then
begin
dec(Seconds,60);
inc(Minutes);
end;
end;
position:=Nowpos;
if NowState = cdPlay then
resume;
end;
end;procedure TForm1.ExitMenuClick(Sender: TObject);
begin
close;
end;procedure TForm1.AboutMenuClick(Sender: TObject);
begin
showmessage('【TTG】小组');procedure TForm1.MusicLeftClick(Sender: TObject);
begin
DisplayTime:=cdMusicLeft;
SetmenuCheck;
end;procedure TForm1.MusicPlayClick(Sender: TObject);
begin
DisplayTime:=cdMusicPlay;
SetmenuCheck;
end;procedure TForm1.DiskPlayClick(Sender: TObject);
begin
DisplayTime:=cdDiskPlay;
SetmenuCheck;
end;procedure TForm1.DiskLeftClick(Sender: TObject);
begin
DisplayTime:=cdDiskLeft;
SetmenuCheck;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
if nowstate<>cdstop then
mediaplayer1.Stop;
mediaplayer1.Close;
end;procedure TForm1.Image1Click(Sender: TObject);
begin
if DisplayTime= cdMusicLeft then
DisplayTime:= cdMusicPlay
else if DisplayTime= cdMusicPlay then
DisplayTime:= cdDiskPlay
else if DisplayTime= cdDiskPlay then
DisplayTime:= cdDiskLeft
else if DisplayTime= cdDiskLeft then
DisplayTime:= cdMusicLeft;
Setmenucheck;
end;//接后……
//我想这可得给多点分吧!!!呵呵
procedure TForm1.Timer1Timer(Sender: TObject);
var
Nowpos : longint;
Tlength : longint;
Llength,Lnowpos : longint;
begin
if NowState=cdNo then
outputstr('',20,25,image1)
else
begin
MediaPlayer1.TimeFormat:=tfTMSF;
if NowState=cdPause then
begin
if NowStep=1 then
begin
NowStep:=0;
outputstr('',20,25,image1);
exit;
end
else
NowStep:=1;
end;
outputstr(GetDisplaystr,20,25,image1);
with Mediaplayer1 do
begin TimeFormat:=tfTMSF;
NowPos:=Position;
Tlength:=trackLength[NowTrack];
with TMSFREC(Nowpos) do
begin
if Tracks<>NowTrack then
begin
combobox1.ItemIndex:=Tracks-1;
// showmessage(inttostr(nowtrack));
// showmessage(inttostr(tracks));
if not(dontseek) then
combobox1Change(Sender);
end;
lnowPos:=minutes*60+seconds;
end;
with TMSFREC(Tlength) do
llength:=minutes*60+seconds;
Musictrack.Min:=0;
MusicTrack.Max:=llength;
MusicTrack.Position:=lnowpos;
TimeFormat:=tfMilliseconds;
NowPos:=Position;
Tlength:=Length;
ProgressBar1.Min:=0;
ProgressBar1.Max:=100;
ProgressBar1.Position:=NowPos*100 div TLength;
end;
end;
StatusBar1.Panels.Items[0].Text:=timetostr(time);
end;procedure TForm1.LeftVolumeChange(Sender: TObject);
var
v,t: longint;
begin
t:=255-leftvolume.position;
waveoutgetvolume(mediaplayer1.deviceid-1,@v);
v:= ((t shl 8) or (v and $ffff0000));
waveoutsetvolume(mediaplayer1.DeviceID-1,v);
end;procedure TForm1.FormCreate(Sender: TObject);
var
v: longint;
begin
LeftVolume.max:=255;
RightVolume.max:=255;
LeftVolume.min:=0;
RightVolume.min:=0;
waveoutgetvolume(mediaplayer1.deviceid-1,@v);
LeftVolume.position:=255-hi(v);
RightVolume.position:=255-hi(v shr 16);
StatusBar1.Panels.Items[1].Width:=Progressbar1.Width;
StatusBar1.Panels.Items[0].Width:=(ClientWidth
-StatusBar1.Panels.Items[1].Width)-10 ;
ProgressBar1.Parent:=StatusBar1 ;
opencd;
SetHint;
DisPlayTime:=cdMusicLeft;
Setmenucheck;end;procedure TForm1.RightVolumeChange(Sender: TObject);
var
v,t: longint;
begin
t:=255-Rightvolume.position;
waveoutgetvolume(mediaplayer1.deviceid-1,@v);
v:= ((t shl 24) or (v and $0000ffff));
waveoutsetvolume(mediaplayer1.deviceid-1,v);
end;procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
ProgressBar1.BoundsRect := Rect;
end;
end.