на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Универсальный проигрыватель WinMedia
p align="left"> Приложение А (продолжение)

begin

video.AVIFile.FileName := opendialog.FileName;

video.Caption := ExtractFileName(opendialog.FileName);

video.AVIFile.OpenFile;

video.AVIControl.FreeStreams;

video.AVIControl.AddFile(video.AVIFile);

video.AVIDisplay.Refresh;

video.Icon.Handle := ExtractassociatedIcon(0,PChar(opendialog.FileName),Idx);

end;

end

else

if OpenDialog.Execute then

begin

IncPlayList := False;

WaveOut.Stop;

if not LoadFile(OpenDialog.FileName) then

MessageDlg('Итс файл из нот карренли',mtWarning, [mbOK],0);

SetFileParams;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.btnCloseClick(Sender: TObject);

begin

if (MessageDlg('ВЫ дестительно хотите выйте из программы??', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then

Close;

end;

procedure TMainForm.btnMenuClick(Sender: TObject);

var

P: TPoint;

begin

P := ButtonPanel.ClientToScreen(Point(btnMenu.Left,btnMenu.Top+btnMenu.Height));

PopupMenu.Popup(P.X,P.Y);

end;

procedure TMainForm.btnPlayClick(Sender: TObject);

begin

if (PlayList.Count = 0) then

begin

btnOpenClick(nil);

Refresh;

end;

IncPlayList := False;

if (PlayList.Count > 0) then

begin

if not (wosPlay in WaveOut.State) then

begin

SelectFile(PlayIndex);

WaveOut.Start;

end

else if (wosPause in WaveOut.State) then

WaveOut.Restart

else

begin

WaveOut.Stop;

WaveOut.Start;

end;

end;

Приложение А (продолжение)

IncPlayList := True;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.btnPauseClick(Sender: TObject);

begin

if (wosPlay in WaveOut.State) then

begin

if (wosPause in WaveOut.State) then

WaveOut.Restart

else

WaveOut.Pause;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.btnStopClick(Sender: TObject);

begin

IncPlayList := False;

WaveOut.Stop;

end;

//предыдущая композиция

procedure TMainForm.btnPrevClick(Sender: TObject);

begin

IncPlayList := False;

if (PlayIndex > 0) then

begin

dec(PlayIndex);

if (wosPlay in WaveOut.State) then

begin

WaveOut.Stop;

SelectFile(PlayIndex);

WaveOut.Start;

end

else SelectFile(PlayIndex);

end;

IncPlayList := True;

end;

////следующая композиция

procedure TMainForm.btnNextClick(Sender: TObject);

begin

IncPlayList := False;

if (PlayIndex < PlayList.Count-1) then

begin

inc(PlayIndex);

if (wosPlay in WaveOut.State) then

begin

WaveOut.Stop;

SelectFile(PlayIndex);

WaveOut.Start;

end

else SelectFile(PlayIndex);

end;

IncPlayList := True;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.GaugeMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var

aPos: Longint;

Приложение А (продолжение)

begin

if (wosOpen in WaveOut.State) then

begin

Seeking := True;

WaveOut.Pause;

if not MpegFile.Empty then

begin

with Gauge do

aPos := MulDiv(X-BevelExtend,MpegFile.Frames,(Width-2*BevelExtend)-1);

if aPos >= MpegFile.Frames then

begin

WaveOut.Stop;

exit;

end

else

begin

MpegFile.Position := aPos;

CurTime := MpegFile.Position*MpegFile.TimePerFrame;

end;

end

else

begin

with Gauge do

aPos := MulDiv(X-BevelExtend,WaveFile.Wave.DataSize,(Width-2*BevelExtend)-1);

if aPos > WaveFile.Wave.DataSize then

begin

WaveOut.Stop;

exit;

end

else

begin

WaveFile.Wave.Position := aPos;

CurTime := WaveFile.Wave.Position;

end;

end;

WaveOut.Reset;

WaveOut.Restart;

OldTime := 0;

Seeking := False;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.btnSkipLClick(Sender: TObject);

begin

if (wosPlay in WaveOut.State) then

begin

Seeking := True;

WaveOut.Pause;

if not MpegFile.Empty then

begin

MpegFile.Position := MpegFile.Position-(5000 div MpegFile.TimePerFrame);

CurTime := MpegFile.Position*MpegFile.TimePerFrame;

end

else

begin

WaveFile.Wave.Position := WaveFile.Wave.Position-5000;

CurTime := WaveFile.Wave.Position;

end;

WaveOut.Reset;

WaveOut.Restart;

OldTime := 0;

Seeking := False;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.btnSkipRClick(Sender: TObject);

Приложение А (продолжение)

begin

if (wosPlay in WaveOut.State) then

begin

if not MpegFile.Empty then

begin

if MpegFile.Position+(5000 div MpegFile.TimePerFrame) > MpegFile.Frames then

WaveOut.Stop;

end

else

begin

if WaveFile.Wave.Position+5000 > WaveFile.Wave.DataSize then

WaveOut.Stop;

end;

Seeking := True;

WaveOut.Pause;

if not MpegFile.Empty then

begin

MpegFile.Position := MpegFile.Position+(5000 div MpegFile.TimePerFrame);

CurTime := MpegFile.Position*MpegFile.TimePerFrame;

end

else

begin

WaveFile.Wave.Position := WaveFile.Wave.Position+5000;

CurTime := WaveFile.Wave.Position;

end;

WaveOut.Reset;

WaveOut.Restart;

OldTime := 0;

Seeking := False;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.btnDecVolumeClick(Sender: TObject);

var

Volume,L,R: Longint;

begin

if (wosOpen in WaveOut.State) then

begin

WaveOutGetVolume(WaveOut.Handle,@Volume);

L := LoWord(Volume);

R := HiWord(Volume);

L := Max(L - 5000,0);

R := Max(R - 5000,0);

Volume := (R shl 16) + L;

WaveOutSetVolume(WaveOut.Handle,Volume);

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.btnIncVolumeClick(Sender: TObject);

var

Volume,L,R: Longint;

begin

if (wosOpen in WaveOut.State) then

begin

WaveOutGetVolume(WaveOut.Handle,@Volume);

L := LoWord(Volume);

R := HiWord(Volume);

L := Min(L + 5000,$FFFF);

R := Min(R + 5000,$FFFF);

Volume := (R shl 16) + L;

WaveOutSetVolume(WaveOut.Handle,Volume);

Приложение А (продолжение)

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.btnPlayListClick(Sender: TObject);

var

wasPlaying: Boolean;

begin

with TPlayListEditor.Create(Self) do

try

if ShowModal = mrOK then

begin

IncPlayList := False;

wasPlaying := (wosPlay in WaveOut.State);

WaveOut.Stop;

PlayList.Assign(TempPlayList);

PlayListName := ListName;

PlayIndex := 0;

SelectFile(0);

if wasPlaying then btnPlayClick(nil);

end;

finally

Free;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.MMPanelMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if (Button = mbLeft) then

begin

Dragging := True;

DragStart := TControl(Sender).ClientToScreen(Point(X,Y));

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.MMPanelMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if (Button = mbLeft) then Dragging := False;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.MMPanelMouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

var

Diff: TPoint;

begin

if Dragging then

begin

Diff := TControl(Sender).ClientToScreen(Point(X,Y));

Diff := Point(Diff.X-DragStart.X,Diff.Y-DragStart.Y);

SetBounds(Left+Diff.X,Top+Diff.Y,Width,Height);

DragStart.X := DragStart.X+Diff.X;

DragStart.Y := DragStart.Y+Diff.Y;

end;

end;

{-- TMainForm -----------------------------------------------------------}

procedure TMainForm.Info1Click(Sender: TObject);

begin

autor.show;

end;

{-- TMainForm -----------------------------------------------------------}

Приложение А (продолжение)

procedure TMainForm.DrawLevelBar(Sender: TObject; DIB: TMMDIBCanvas; Rect: TRect; nSpots,Peak: integer);

begin

with DIB,Rect do

begin

if Sender = MMSpectrum1 then

begin

DIB_CopyDIBBits(MMSpectrum1.DIBCanvas.BackSurface,Left,Bottom-nSpots,Right-Left-1,Bottom,0,Bottom-nSpots);

DIB_CopyDIBBits(MMSpectrum1.DIBCanvas.BackSurface,Left,Bottom-Peak,Right-Left-1,2,0,Bottom-Peak);

end

else if Sender = MMLevel1 then

Страницы: 1, 2, 3, 4, 5, 6, 7, 8



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.