優(yōu)勝從選擇開始,我們是您最好的選擇!—— 中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)
0373-5939925
2851259250@qq.com
我要檢測 我要投稿 合法期刊查詢
您的位置:網(wǎng)站首頁 > 優(yōu)秀論文 > 正文

Delphi模擬實現(xiàn)控件數(shù)組分析

作者:張慧來源:原創(chuàng)日期:2013-10-11人氣:976

1、控件數(shù)組為使用共享公共功能的控件組提供了一種方便的方式。例如,控件組可以用來顯示相關(guān)數(shù)據(jù),或者在單擊時提供相關(guān)的操作。控件數(shù)組處理多個控件統(tǒng)一事件上很方便此功能使得創(chuàng)建一個能夠響應(yīng)由多個不同控件引發(fā)的事件的處理程序方法成為可能。使用控件數(shù)組可開發(fā)出一些小型游戲。控件數(shù)組的靈活使用能夠大大提高編程人員的編程效率。Delphi未提供專門的控件數(shù)組,本文主要討論的是如何在Delphi中模擬實現(xiàn)控件數(shù)組。
2、控件數(shù)組原理
標(biāo)準(zhǔn)的控件數(shù)組是由一組相同類型的控件組成。它們共用一個控件名,具有相同的屬性,執(zhí)行相似的操作,同時共享同樣的事件過程。為區(qū)分控件數(shù)組中的各個元素,具有此功能的程序設(shè)計語言通常會把各元素的下標(biāo)值傳送給過程,過程從接收到的下標(biāo)來區(qū)分不同的元素。
3、Delphi中控件數(shù)組的模擬實現(xiàn)
3.1Delphi模擬控件數(shù)組原理分析
VB是具有的靈活的控件數(shù)組功能的典型程序設(shè)計語言,但在DELPHI中卻未專門提供控件數(shù)組,在很多DELPHI的教材中都提到一個方法:TLISTSTRING;使TLISTSTRING類控制容器中的控件以達(dá)到使用控件數(shù)組的目的;另外一種途徑是由用戶自己來開發(fā)帶數(shù)組性質(zhì)的VCL組件。這兩種方法對DELPHI的是初級入門者是不現(xiàn)實的。使用TLISTSTRING類代碼量大,難以閱讀,使用時非常吃力;由用戶自己制作組件這又不是DELPHI初級使用者所能完成的工作。在Delphi中,各控件排列的先后順序和它被拖放到窗體上的先后順序相同。這個順序是可以人為修改的,通過修改這個順序,能夠?qū)崿F(xiàn)控件的數(shù)組化。
3.2Delphi模擬控件數(shù)組模擬實現(xiàn)方案
使用Delphi窗體的Components[I],ComponentCount;ComponentIndex三個屬性模擬控件的數(shù)組化。各屬性相關(guān)含義如下:
Components[I]屬性表示當(dāng)前窗體上所有屬于TComponent類的對象形成的數(shù)組ComponentCount屬性表示當(dāng)前窗體上所有屬于TComponent類的對象的個數(shù)ComponentIndex屬性表示當(dāng)前窗體上屬于TComponent類的某個對象在Components[I]數(shù)組中的下標(biāo)
將窗體上所有Button組件的Caption屬性設(shè)為Tbutton,代碼如下:
VarI:integer;
forI:=0tocomponentCount-1do‘利用for循環(huán)判斷某對象是否屬于Tbutton類
if(components[I]isTbutton)then
(components[I]asTbutton).Caption:='TButton';
分析:For循環(huán)用于遍歷當(dāng)前窗體上所有屬于TComponent類的對象;if語句用于判斷某個對象是否屬于Tbutton類;如果條件成立,則將該對象的Caption屬性修改為'TButton'。通過上述分析,不難發(fā)現(xiàn),這種方法有一定局限性,最明顯的是設(shè)計人員并不知道Components[I]到底代表哪一個控件,因此只能用遍歷的方法進(jìn)行篩選,這不僅影響了程序執(zhí)行的效率,也帶來編程上的繁瑣問題。
要解決上述問題,就要用到TComponent類的ComponentIndex屬性。在delphi7.0中,ComponentIndex屬性表示當(dāng)前窗體上屬于TComponent類的某個對象在Components[I]數(shù)組中的下標(biāo)并且該屬性是一個可讀寫屬性;該屬性的默認(rèn)值是該組件的添加次序(從0開始計數(shù)),那么就可以利用這一屬性在組件生成時將同類組件的ComponentIndex屬性設(shè)置為連續(xù)的自然數(shù)數(shù)列;比如:n,n+1,n+2,……,n+m;如果我們要修改窗體上的該類組件,只需要遍歷Components[I]數(shù)組的部分下標(biāo)(比如Components[n]……Components[n+m])就可以實現(xiàn)。從而提高程序執(zhí)行效率,同時也避免了編程上的繁瑣問題。

網(wǎng)絡(luò)客服QQ: 沈編輯

投訴建議:0373-5939925????投訴建議QQ:

招聘合作:2851259250@qq.com (如您是期刊主編、文章高手,可通過郵件合作)

地址:河南省新鄉(xiāng)市金穗大道東段266號中州期刊聯(lián)盟 ICP備案號:豫ICP備2020036848

【免責(zé)聲明】:中州期刊聯(lián)盟所提供的信息資源如有侵權(quán)、違規(guī),請及時告知。

版權(quán)所有:中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)

關(guān)注”中州期刊聯(lián)盟”公眾號
了解論文寫作全系列課程

核心期刊為何難發(fā)?

論文發(fā)表總嫌貴?

職院單位發(fā)核心?

掃描關(guān)注公眾號

論文發(fā)表不再有疑惑

論文寫作全系列課程

掃碼了解更多

輕松寫核心期刊論文

在線留言