線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1541
推到 Plurk!
推到 Facebook!

有關TrackBar的問題

尚未結案
redheart
一般會員


發表:2
回覆:1
積分:0
註冊:2005-01-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-13 23:05:38 IP:210.71.xxx.xxx 未訂閱
我製作一個mp3的播放器...可是我的trackbar不能拖曳,試了很多方法可是都無法拖...能不能幫助我...>< ==>以下是我的程式碼 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, ComCtrls, StdCtrls, ExtCtrls, Buttons; type TForm1 = class(TForm) OpenDialog1: TOpenDialog; TrackBar1: TTrackBar; mp3: TMediaPlayer; Timer1: TTimer; mp3List: TListBox; Openbtn: TBitBtn; Playbtn: TBitBtn; Pausebtn: TBitBtn; Stopbtn: TBitBtn; Backbtn: TBitBtn; Nextbtn: TBitBtn; procedure OpenbtnClick(Sender: TObject); procedure PlaybtnClick(Sender: TObject); procedure PausebtnClick(Sender: TObject); procedure StopbtnClick(Sender: TObject); procedure BackbtnClick(Sender: TObject); procedure NextbtnClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure TrackBar1Change(Sender: TObject); private procedure Playmp3; procedure BackTrack; procedure NextTrack; procedure UpdateProgress; public { Public declarations } end; var Form1: TForm1; mp3File : String; playindex : integer = 0; implementation {$R *.dfm} procedure TForm1.Playmp3; begin try if mp3List.Items.Count > 0 then begin if mp3List.ItemIndex = -1 then mp3List.ItemIndex := 0; mp3File := mp3List.Items.Strings[mp3List.ItemIndex]; mp3.FileName := mp3File; mp3.Open; mp3.Play; end; except; end; end; procedure TForm1.NextTrack; begin try playindex := mp3List.ItemIndex; Inc(playindex); if playindex = mp3List.Items.Count then playindex := 0; mp3List.ItemIndex := playindex; mp3File := mp3List.Items.Strings[playindex]; mp3.FileName := mp3File; mp3.Open; if mp3.FileName = '' then Playmp3 else mp3.Resume; except; end; end; procedure TForm1.BackTrack; begin try playindex := mp3List.ItemIndex; Dec(playindex); if playindex < 0 then playindex := 0; mp3List.ItemIndex := playindex; mp3File := mp3List.Items.Strings[playindex]; mp3List.ItemIndex := mp3List.ItemIndex; mp3.FileName := mp3File; mp3.Open; if mp3.FileName = '' then Playmp3 else mp3.Resume; except; end; end; procedure TForm1.UpdateProgress; begin try TrackBar1.Enabled:=true; TrackBar1.Max := mp3.length; TrackBar1.Position := mp3.Position; TrackBar1.Min := mp3.StartPos; TrackBar1.Update; mp3.Update; if mp3.Position >= mp3.Length then NextTrack; except; end; end; procedure TForm1.OpenbtnClick(Sender: TObject); var i : integer; begin if OpenDialog1.Execute then for i := 0 to OpenDialog1.Files.Count-1 do with mp3List do mp3List.Items.Add(OpenDialog1.Files.Strings[i]); end; procedure TForm1.PlaybtnClick(Sender: TObject); begin try if mp3.FileName = '' then Playmp3 else mp3.Resume; except; end; end; procedure TForm1.PausebtnClick(Sender: TObject); begin mp3.PauseOnly; end; procedure TForm1.StopbtnClick(Sender: TObject); begin mp3.Stop; mp3.Open; end; procedure TForm1.BackbtnClick(Sender: TObject); begin try BackTrack except; end; end; procedure TForm1.NextbtnClick(Sender: TObject); begin try NextTrack except; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin if mp3.FileName <> '' then UpdateProgress; end; procedure TForm1.TrackBar1Change(Sender: TObject); begin TrackBar1.Position := mp3.Position; end; end.
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-14 00:38:34 IP:203.204.xxx.xxx 未訂閱
您好: 無法實測,僅能猜測 我覺得是這段有問題 procedure TForm1.TrackBar1Change(Sender: TObject); begin TrackBar1.Position := mp3.Position; end; 您在拖曳TrackBar時會觸發OnChange的事件,而您一值將他等於成mp3.position,那他不就一直跳回mp3.position的值了嘛? 發表人 - supman 於 2005/04/14 00:40:20
redheart
一般會員


發表:2
回覆:1
積分:0
註冊:2005-01-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-14 00:47:07 IP:218.164.xxx.xxx 未訂閱
不好意思...我是新手....我能否將檔案傳給你... 你看看是不是還有問題
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-14 01:02:54 IP:203.204.xxx.xxx 未訂閱
可以,您將檔案傳到sstsupman@pchome.com.tw我幫您測看看,好了在回覆您.
系統時間:2024-05-04 13:36:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!