基于組件技術(shù)的multitimer的設(shè)計(jì)與實(shí)現(xiàn)

基于組件技術(shù)的multitimer的設(shè)計(jì)與實(shí)現(xiàn)

ID:18558777

大?。?1.50 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2018-09-18

基于組件技術(shù)的multitimer的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于組件技術(shù)的multitimer的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于組件技術(shù)的multitimer的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于組件技術(shù)的multitimer的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于組件技術(shù)的multitimer的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
資源描述:

《基于組件技術(shù)的multitimer的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、基于組件技術(shù)的MultiTimer的設(shè)計(jì)與實(shí)現(xiàn)[日期:2006-05-20]來(lái)源:?作者:[字體:大中小]李琪謝建?摘要:本文提出了采用封裝擴(kuò)充設(shè)計(jì)DelphiVCL控件Ttimer的方法,成功開發(fā)出一種新的多重復(fù)用計(jì)時(shí)器控件MultiTimer,解決了某型導(dǎo)彈發(fā)射虛擬仿真系統(tǒng)中用戶操作面板需要多個(gè)定時(shí)器觸發(fā)各種事件的問(wèn)題。關(guān)鍵詞:delphiVCL虛擬仿真控件1、問(wèn)題的提出我們?cè)谠O(shè)計(jì)某個(gè)導(dǎo)彈操作平臺(tái)虛擬系統(tǒng)時(shí),在計(jì)算機(jī)上模擬操作平臺(tái)面板的各種操作規(guī)程,在設(shè)計(jì)用戶界面中經(jīng)常用到3~5多個(gè)定時(shí)器。大家知道,一個(gè)定時(shí)器就要占用非常大的系統(tǒng)資源,這使整個(gè)軟件系統(tǒng)運(yùn)行速度和穩(wěn)

2、定性都大大降低,為此,我們利用Delphi控件開發(fā)技術(shù)在現(xiàn)有的VCL控件基礎(chǔ)上設(shè)計(jì)了一種多重復(fù)用計(jì)時(shí)器控件MultiTimer,它占用系統(tǒng)資源只有一個(gè)定時(shí)器大小,但起到多個(gè)定時(shí)器的功能,下面就介紹這種定時(shí)器控件的設(shè)計(jì)方案。2、Delphi控件開發(fā)技術(shù)Delphi作為一種OOP開發(fā)環(huán)境,支持用戶繼承VCL類或新創(chuàng)建自定義類開發(fā)出符合自己要求的控件。Delphi提供了多種擴(kuò)展控件的方法:(1)從Delphi自帶的控件中繼承并擴(kuò)展。(2)直接編寫新的控件,并編譯安裝在Delphi的控件面板中。(3)安裝外部程序提供的OCX控件。開發(fā)過(guò)程一般分為創(chuàng)建控件屬性、方法、事件、消息

3、處理、異常處理和設(shè)計(jì)時(shí)控制方式等六步,完全重新設(shè)計(jì)一個(gè)新控件是不可取的,也是要花費(fèi)大量時(shí)間,我們采用第一種方法從Delphi自帶的控件中繼承并擴(kuò)展。Delphi對(duì)象有繼承的特性,這意味著我們可以在已有對(duì)象類型的基礎(chǔ)上創(chuàng)建新的對(duì)象,這個(gè)新對(duì)象將能夠繼承其祖先對(duì)象的所有事件、屬性及方法,并且在對(duì)衍生對(duì)象添加新過(guò)程方面有著十足的靈活性。在Delphi提供的控件中,有一個(gè)Timer定時(shí)器控件,位于system頁(yè)中,可以定時(shí)觸發(fā)事件執(zhí)行用戶代碼,在模擬系統(tǒng)中經(jīng)常使用這個(gè)控件模擬各種流程的執(zhí)行情況,但是Timer控件只能起到一個(gè)定時(shí)的作用,如果想使用多個(gè)不同的定時(shí)器,就必須使用多

4、個(gè)Timer控件,分別設(shè)置各種參數(shù),不僅非常不方便,而且浪費(fèi)大量系統(tǒng)資源。于是我們利用類的繼承性和派生性創(chuàng)建一個(gè)新的控件,繼承Timer控件所有特性,并增加新的特性,給它加上多個(gè)計(jì)時(shí)功能。3、TmultiTimer類實(shí)現(xiàn)3.1屬性定義TmultiTimer類實(shí)現(xiàn)如圖1所示,它為TmultiTimer類繼承結(jié)構(gòu),其屬性定義如下表所示。屬性類型說(shuō)明FEnabled1Boolean計(jì)數(shù)器1工作標(biāo)志FEnabled2Boolean計(jì)數(shù)器2工作標(biāo)志FEnabled3Boolean計(jì)數(shù)器3工作標(biāo)志FNumInteger內(nèi)部區(qū)分計(jì)數(shù)器標(biāo)志FInterval2Integer計(jì)數(shù)器2定

5、時(shí)倍數(shù)FInterval3Integer計(jì)數(shù)器3定時(shí)倍數(shù)FOnTimer2TNotifyEvent定義OnTimer2事件FOnTimer3TNotifyEvent定義OnTimer3事件圖1TMultiTimer類繼承結(jié)構(gòu)3.2方法事件定義procedureTimer;override;//重聲明Timer事件procedureTimer2;dynamic;//動(dòng)態(tài)生成Timer2事件procedureTimer3;dynamic;//動(dòng)態(tài)生成Timer3事件3.3重聲明構(gòu)造函數(shù)和析構(gòu)函數(shù)任何一個(gè)Delphi對(duì)象都至少有兩個(gè)最基本的方法,即控件設(shè)計(jì)都必須構(gòu)造函數(shù)(c

6、onstructor)Create和析構(gòu)函數(shù)(destructor)Destroy來(lái)完成為新對(duì)象分配內(nèi)存和撤銷對(duì)象并釋放內(nèi)存工作。constructorCreate(AOwner:TComponent);override;destructorDestroy;override;3.4實(shí)現(xiàn)多重復(fù)用過(guò)程procedureTMultiTimer.Timer;beginifFEnabled1=TruetheninheritedTimer;;FNum:=FNum+1;ifFNum=1*Interval2*Interval3+1thenFNum:=1;if(FNummodInter

7、val2=0)and(FEnabled2=True)thenTimer2;if(FNummodInterval3=0)and(FEnabled3=True)thenTimer3;end;3.5第N個(gè)計(jì)數(shù)器響應(yīng)過(guò)程procedureTMultiTimer.TimerN;beginifAssigned(FonTimerN)thenFonTimerN(Self);end;3.6控件全部代碼:unitMultiTimer;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Form

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。