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

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

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

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

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

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

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

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

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

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

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

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

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

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

掃描關注公眾號

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

論文寫作全系列課程

掃碼了解更多

輕松寫核心期刊論文

在線留言