freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于delphi的視頻播放器設(shè)計(jì)-閱讀頁(yè)

2025-07-12 17:18本頁(yè)面
  

【正文】 FNStr: string。MPG Files (*.mpg)|*.mpg39。 FNStr: =ExtractFileName ()。 。End。即:點(diǎn)擊后隨即播放選定的類(lèi)型文件。Var FNStr: string。MPG(*.mpg)|*.mpg|39。AVI(*.avi)|*.avi|39。RA(*.ra)|*.ra|39。RM(*.rm)|*.rm|39。MP3(*.mp3)|*.mp3|39。MIDI(*.midi)|*.midi|39。WAV(*.wav)|*.wav|39。DAT(*.dat)|*.dat|ALL(*.*)|*.*39。 ()。 :=Copy (FNStr, 1, Length (FNStr)4)。End。 在播放列表中“順序播放”或“播放/暫?!笨刂瓢粹o以及列表區(qū)單擊與雙擊響應(yīng)事件都要涉及到編輯區(qū)文本提示,在此我們不一一加以介紹,在接下來(lái)的模塊功能實(shí)現(xiàn)中,我們將做具體介紹。完善后的“播放”按鈕代碼如下:Procedure (Sender: TObject)。BeginFNStr: =ExtractFileName ()。 視頻顯示模塊功能實(shí)現(xiàn):默認(rèn)的RealAudio播放控制組件沒(méi)有為我們提供視頻播放窗口,只能播放音頻文件,這在前面我們已經(jīng)有所提及,要想使我們?cè)O(shè)計(jì)的視頻播放器能夠播放視頻文件,我們需要預(yù)先指定視頻播放窗口,這里我們既可以通過(guò)程序代碼來(lái)實(shí)現(xiàn),也可以通過(guò)RealAudio的屬性設(shè)置來(lái)實(shí)現(xiàn)?;蛟O(shè)置Controls的屬性值為:IMAGEWINDOW,都可以使得播放器在視頻文件播放時(shí)獲得播放顯示窗口。通過(guò)菜單組件MainMenu的屬性項(xiàng)Items…可以打開(kāi)菜單設(shè)計(jì)器MainMenu Designer?!拔募辈藛雾?xiàng)中下含“按文件類(lèi)型打開(kāi)”與“退出系統(tǒng)”子項(xiàng)。關(guān)于“退出系統(tǒng)”子項(xiàng)的設(shè)計(jì),我們可以通過(guò)調(diào)用RealAudio的DoStop事件停止當(dāng)前播放,再添加“”代碼終止程序來(lái)完成,完整的程序段如下:Procedure (Sender: TObject)。當(dāng)然,也可以通過(guò)調(diào)用RealAudio的FreeOnRelease和Destory兩事件來(lái)完成系統(tǒng)的安全退出,其程序段如下:Procedure (Sender: TObject)。RealAudio1. Destory。 “系統(tǒng)控制”菜單項(xiàng)下含“播放控制”與“播放列表控制”子項(xiàng)。例如“播放控制”中的“曲目播放”菜單子項(xiàng)的功能代碼可編寫(xiě)為:Procedure (Sender: TObject)。BeginFNStr: =ExtractFileName ()。在以上程序中可以很容易的發(fā)現(xiàn):菜單項(xiàng)“曲目播放”的實(shí)現(xiàn)代碼與控制按鈕“播放”是完全相同的。由于,我們所設(shè)計(jì)的播放列表并不是隨機(jī)生成的,且播放列表是寄生于表單窗體之中的,通過(guò)表單事件show與close的調(diào)用,我們可以很輕松的實(shí)現(xiàn)播放列表的打開(kāi)與關(guān)閉。BeginList_1 .show。Procedure (Sender: TObject)。End。由于,在播放列表的設(shè)計(jì)過(guò)程中,我們采用了“跨表單/跨單元”的設(shè)計(jì)思路,對(duì)于“播放列表編輯”菜單子項(xiàng)的設(shè)計(jì)過(guò)程中及其播放列表中部分功能按鈕的實(shí)現(xiàn)過(guò)程中,這里就會(huì)涉及到對(duì)其他窗體的變量、屬性與方法的訪問(wèn)問(wèn)題。例如:最初設(shè)計(jì)的窗體默認(rèn)為Form1,通過(guò)全局變量實(shí)例化后為:Var Form1 = TForm1。對(duì)應(yīng)的,播放列表窗體我們?cè)谠O(shè)計(jì)初始時(shí),置其N(xiāo)ame屬性為:List_1,通過(guò)全局變量實(shí)例化后為:Var List_1: TList_1。每個(gè)單元中可以有兩個(gè)uses子句,一個(gè)在interface部分,一個(gè)在implementation部分。這里,為使兩窗體間可以進(jìn)行各自變量、屬性與方法的調(diào)用,我們需要在其各自的窗體單元文件的implementation部分添加一個(gè)uses子句。其代碼分別為:ImplementationUses Unit1。有了以上的準(zhǔn)備工作完成后,我們就可以進(jìn)行“列表編輯”菜單子項(xiàng)與播放列表中的功能按鈕設(shè)計(jì)了。Begin:=39。:=39。+39。+39。+39。+39。+39。+39。+39。If then Begin 。 End?!扒刻砑印辈藛雾?xiàng)寄生于RealAudio1表單中,而OpenDialog1與ListBox1組件寄生于List_1表單中。需要注意的是:?jiǎn)卧a編程中,在訪問(wèn)其他窗體中某組件的屬性、事件或方法時(shí),我們還需要將待訪問(wèn)窗體作為容器對(duì)象,并通過(guò)該容器對(duì)象進(jìn)行組件的調(diào)用與訪問(wèn)。其中,表單List_1即為組件ListBox1的容器對(duì)象,而List_1早已在窗體的單元代碼中預(yù)先通過(guò)全局變量實(shí)例化了,想訪問(wèn)ListBox1的Update事件,要通過(guò)List_1進(jìn)行調(diào)用。對(duì)于當(dāng)前曲目索引的調(diào)用,我們需要通過(guò)某一預(yù)先定義的變量來(lái)實(shí)現(xiàn),使得該變量動(dòng)態(tài)的對(duì)應(yīng)曲目索引。VarI: integer。If i=0 then Begin (i)。End。Begin:=true。這里,我們只需使得Timer的Enabled屬性為true,從而觸發(fā)OnTimer事件,最終實(shí)現(xiàn)曲目的順序播放。Begin。End。 順序播放與終止順序播放的功能實(shí)現(xiàn),關(guān)鍵在于OnTimer事件處理程序的編寫(xiě),這里將涉及到全局變量的定義與應(yīng)用,同時(shí)還將涉及到全局變量的初始化問(wèn)題。而ListBox1寄生于播放列表單中,是跨表單/跨單元控制,為獲得另一表單中ListBox1的當(dāng)前索引項(xiàng),僅僅通過(guò)局部變量是無(wú)法實(shí)現(xiàn)的,為此我們需要設(shè)計(jì)一個(gè)全局變量,由這個(gè)全局變量動(dòng)態(tài)的獲得當(dāng)前曲目控制。Timer1組件的OnTimer事件處理程序代碼如下:Procedure (Sender: TObject)。BeginIf = then Begin Nplaysel: =nplaysel+1。 End。 ()。 :=Copy (FNStr, 1, Length (FNStr)4)。 End。在以上的程序段中,nplaysel為我們預(yù)先定義的全局變量,通過(guò)nplaysel我們獲得當(dāng)前播放曲目的對(duì)應(yīng)索引;FNStr為該程序段中用到的局部變量,通過(guò)FNStr使得文本提示區(qū)獲得曲目信息。通過(guò)程序段:If nplaysel= then Begin Nplaysel: =0。實(shí)現(xiàn)了最終的曲目列表的循環(huán)。這里,我們通過(guò)主窗體的OnCreate方法來(lái)實(shí)現(xiàn)全局變量nplaysel的初始化,使得程序在運(yùn)行時(shí),獲得順序播放的初始曲目所對(duì)應(yīng)的曲目索引。BeginNplaysel: =1。這里,全局變量nplaysel的初始值設(shè)置為1,由于ListBox1的首項(xiàng)目所對(duì)應(yīng)的索引值為0,而在OnTimer事件代碼程序中通過(guò)nplaysel:=nplaysel+1。在沒(méi)有對(duì)任何曲目進(jìn)行鼠標(biāo)選取時(shí),順序播放從列表中的首曲目順次進(jìn)行。在此方面的開(kāi)發(fā),涉及到多項(xiàng)目開(kāi)發(fā),我們只需要調(diào)用相應(yīng)的項(xiàng)目文件即可,其設(shè)計(jì)思想與播放列表的設(shè)計(jì)是相同的,對(duì)此我們沒(méi)有進(jìn)行深入的開(kāi)發(fā),僅通過(guò)簡(jiǎn)單的設(shè)計(jì),為用戶提供一定的版本信息而已。Begin。 播放列表模塊功能實(shí)現(xiàn): 播放列表下含:曲目列表、曲目編輯、曲目控制及簡(jiǎn)單的列表修飾等設(shè)計(jì)內(nèi)容。例如“添加曲目”的實(shí)現(xiàn)代碼如下:Procedure (Sender: TObject)。查找播放文件39。MPG(*.mpg)|*.mpg|39。AVI(*.avi)|*.avi|39。RA(*.ra)|*.ra|39。RM(*.rm)|*.rm|39。MP3(*.mp3)|*.mp3|39。MIDI(*.midi)|*.midi|39。WAV(*.wav)|*.wav|39。DAT(*.dat)|*.dat|ALL(*.*)|*.*39。 (ExtractFileName ())。End。在此,我們僅設(shè)計(jì)了“順序播放”與“播放/暫?!钡瓤刂祈?xiàng)。VarI: integer。Nplaysel: =。If i=0 then Begin :=[i]。 :=。 End。在以上程序段中,除“:=true。我們知道Timer1組件寄生于主窗體RealAudio中,且菜單項(xiàng)同樣寄生于主窗體當(dāng)中,在菜單中實(shí)現(xiàn)“順序播放”功能前,Timer1的OnTimer事件已經(jīng)為其功能的實(shí)現(xiàn)作了一定的準(zhǔn)備工作::= [nplaysel]。FNStr: =ExtractFileName ()。在理論上以下兩語(yǔ)句在程序中發(fā)揮著等同的作用。等價(jià)于::=[i]。在前面我們說(shuō)菜單項(xiàng)“順序播放”的實(shí)現(xiàn)代碼很簡(jiǎn)捷,要得益于OnTimer的準(zhǔn)備工作,通過(guò)OnTimer事件,使得“順序播放”在沒(méi)有通過(guò)鼠標(biāo)的單擊選擇情況下,順序且循環(huán)播放列表中的現(xiàn)有曲目;同時(shí),ListBox1的單擊響應(yīng)事件OnClick也為其提供了必要的準(zhǔn)備,以下是ListBox1的OnClick事件代碼:Procedure (Sender: TObject)。End。也就是說(shuō)當(dāng)鼠標(biāo)單擊選擇了曲目后,“順序播放”菜單項(xiàng)將控制曲目從鼠標(biāo)已選定曲目為首曲目進(jìn)行順序播放。當(dāng)鼠標(biāo)雙擊播放列表中的曲目后,將選取所點(diǎn)擊的曲目且播放該曲目,以下為L(zhǎng)istBox1雙擊響應(yīng)事件OnDblClick的程序代碼:Procedure (Sender: TObject)。Begini: = 。If i=0 then Begin :=[i]。 :=。 End。局部變量i即為鼠標(biāo)雙擊后所選曲目的對(duì)應(yīng)索引,而全局變量nplaysel則是為在鼠標(biāo)雙擊曲目并播放曲目后響應(yīng)“順序播放”控制而調(diào)用的。 當(dāng)點(diǎn)擊“播放/暫?!惫δ馨粹o后,將播放/暫停鼠標(biāo)單擊選取的曲目或通過(guò)“選擇文件”選定的曲目文件,同時(shí)還可以暫停順序播放的曲目,當(dāng)暫停順序播放的曲目后,再次點(diǎn)擊此按鈕將繼續(xù)播放當(dāng)前曲目,至當(dāng)前曲目結(jié)束后,終止順序播放。BeginIf kk=0 then Begin := [kk]。 :=。 。End。要對(duì)曲目進(jìn)行播放控制,在前面“播放”按鈕的代碼實(shí)現(xiàn)過(guò)程中,我們引用了OpenDialog1的打開(kāi)文件名FileName,從而使得播放器獲得播放源。在ListBox1中,Items曲目索引對(duì)應(yīng)著的著列項(xiàng)字符串,這里的列項(xiàng)字符串正是我們添加曲目后,播放曲目名所對(duì)應(yīng)的字符串。使得OpenDialog1獲得播放曲目名,即:給OpenDialog1的FileName屬性賦值。即有子句: ()。 在播放列表的修飾中,我們調(diào)用了圖象組件TImage。在此我們不做過(guò)多的介紹。 關(guān)于TRealAudio組件調(diào)用說(shuō)明:在默認(rèn)情況下Delphi7的ActiveX標(biāo)簽頁(yè)并沒(méi)有該組件,需要我們預(yù)先安裝,下面我們將對(duì)此加以介紹:在Delphi7的可視化編程環(huán)境中,選擇Component(組件)菜單下的“Import ActiveX Control...”(導(dǎo)入ActiveX控件)選項(xiàng),選中其中的“Real Player ActiveX Control Library()”項(xiàng),并單擊Install,會(huì)出現(xiàn)一個(gè)install窗口。如果要把它添加到一個(gè)新建的包中,在“Into new package”對(duì)話框中的 “File name: ”窗口中選擇欲安裝的路徑,并新建一個(gè)包,假如命名為test,并單擊“OK”;此時(shí)會(huì)提示“Package will be built. Continue?”,單擊“Yes”。在以上的安裝過(guò)程結(jié)束后,會(huì)在組件面板的ActiveX標(biāo)簽頁(yè)上發(fā)現(xiàn)一個(gè)新的組件,名字為RealAudio;此時(shí),就可以通過(guò)ActiveX直接調(diào)用RealAudio到項(xiàng)目表單中了。根據(jù)實(shí)際的需要,一般的軟件應(yīng)用程序應(yīng)該可以脫離實(shí)際的軟件開(kāi)發(fā)平臺(tái),且不依賴(lài)于程序開(kāi)發(fā)過(guò)程生成的項(xiàng)目文件或有關(guān)的系統(tǒng)資源文件。在對(duì)問(wèn)題分析后,通過(guò)進(jìn)一步的程序調(diào)試認(rèn)為其錯(cuò)誤的根源在于——在程序開(kāi)發(fā)過(guò)程中,程序中對(duì)第三方控件的調(diào)用。在Delphi7中每個(gè)應(yīng)用組件必須在系統(tǒng)中預(yù)先注冊(cè),才可以在程序開(kāi)發(fā)過(guò)程中調(diào)用組件并在可執(zhí)行程序運(yùn)行期間對(duì)組件識(shí)別。前面我們已經(jīng)提到:通過(guò)TRealAudio組件實(shí)現(xiàn)RealPlayer播放器的功能,而TRealAudio正是ActiveX類(lèi)型組件之一,這里對(duì)TRealAudio組件的注冊(cè)可以說(shuō)是ActiveX控件注冊(cè)的一個(gè)實(shí)例。該文件位于Windows目錄的system子目錄下。大型應(yīng)用軟件一般都有一個(gè)安裝程序,在安裝程序中解決ActiveX控件注冊(cè)是較為理想的一種方案。方法如下:?jiǎn)?dòng)InstallShield,使用ProjectWizard建立一個(gè)新的項(xiàng)目;新建一個(gè)“FileGroup”,將需要注冊(cè)的ActiveX控件文件放入此“FileGroup”中;將上述“FileGroup”的“Self-Registered”屬性設(shè)置成“Yes”;三、在應(yīng)用程序中加入注冊(cè)代碼對(duì)于小型程序不宜采取第二種方法,較好的方法是在程序中嵌入注冊(cè)代碼,實(shí)現(xiàn)應(yīng)用程序自注冊(cè)。在程序的總體界面設(shè)計(jì)、源程序代碼的編寫(xiě)與程序的后期調(diào)試之后,我們就可以對(duì)程序進(jìn)行最終的編譯與運(yùn)行了。如果出現(xiàn)編譯錯(cuò)誤,將在編譯信息狀態(tài)欄中給予對(duì)應(yīng)的錯(cuò)誤信息,結(jié)合錯(cuò)誤信息進(jìn)行程序的修改與調(diào)試,直到?jīng)]有任何錯(cuò)誤方可運(yùn)行可執(zhí)行程序。3. 結(jié)論 研究成果:對(duì)于本課題設(shè)計(jì),從最初的設(shè)計(jì)構(gòu)想到程序試設(shè)計(jì),從程序試設(shè)計(jì)到程序的最終完成再到程序的調(diào)試與運(yùn)行,在整個(gè)過(guò)程中,各個(gè)設(shè)計(jì)環(huán)節(jié)自己都是一步步認(rèn)真完成的,通過(guò)查閱相關(guān)資料,通過(guò)與導(dǎo)師探討等等,使自己學(xué)到了很多,當(dāng)然也獲得了諸多有價(jià)值的研究成果。 在系統(tǒng)界面設(shè)計(jì)中,我們不僅設(shè)計(jì)了提示性按鈕“SELECT”和“PLAY”,迎合了習(xí)慣于使用提示性按鈕的用戶需求;同時(shí),我們還應(yīng)用Edit編輯框組件設(shè)計(jì)了播放器文本信息提示區(qū),從而彌補(bǔ)了RealAudio信息提示的不足,擴(kuò)展了系統(tǒng)功能;178
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1