国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C++ Builder 初學(xué)問(wèn)與答 (九)

2019-11-17 05:04:36
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  9.多頁(yè)組件
  68)問(wèn):我覺(jué)得C++Builder的組件模板的治理方式很好,在這個(gè)模板中通過(guò)單擊頁(yè)就可以在各個(gè)頁(yè)之間進(jìn)行切換,在C++Builder中我應(yīng)該怎樣來(lái)實(shí)現(xiàn)呢?
  答:我們可以用多頁(yè)組件來(lái)實(shí)現(xiàn),它的好處就是可以在有限的空間中盡量多地存放信息,而且便于把信息分類。就拿組件模板來(lái)說(shuō)吧,在那么小的屏幕中放置了上百個(gè)組件,而且并不顯得凌亂,這都是多頁(yè)組件的功勞。  假如窗體上要放置大量的組件,而且這些組件又是分組使用的,那么可以考慮使用多頁(yè)組件。這樣做可以使窗體更加簡(jiǎn)潔明了。多頁(yè)組件既有多頁(yè)的特性,又是一個(gè)容器組件,它就像窗體一樣可以包含其他的組件。  C++Builder提供了幾種功能相似的多頁(yè)組件,它們是:Win32頁(yè)中的TabControl,PageControl組件,Win31頁(yè)中的TabSet和TabbedNoteBook組件。從它們所在的頁(yè)的不同就可以知道,前兩個(gè)組件是應(yīng)用在32位系統(tǒng)中的組件,無(wú)論從性能還是風(fēng)格上來(lái)看,這兩個(gè)組件都更適合在Windows 95以上的板本中使用。后面兩種組件是為喜愛(ài)Windows 3.1風(fēng)格的用戶保留的,其實(shí)我們完全可以只使用前兩種組件。  69)問(wèn):TabControl組件和PageControl組件他們看起來(lái)簡(jiǎn)直是一模一樣?  答:初看起來(lái)這兩種組件的確差不多,我們可以通過(guò)下面的操作可以說(shuō)明這一點(diǎn)。  (1)在窗體上放置這兩個(gè)組件,通過(guò)修改Height和Width屬性把它們的尺寸設(shè)置成相同的。  (2)在對(duì)象編輯器中,單擊TabControl的屬性Tabs中的省略號(hào)按鈕,這時(shí)會(huì)彈出一個(gè)字符串編輯器。在這個(gè)編輯器中分三行輸入第一頁(yè),第二頁(yè)和第三頁(yè)。然后點(diǎn)擊OK按鈕。  (3)在窗體中選取PageControl組件,用鼠標(biāo)右鍵單擊該組件,在彈出的快捷菜單中選擇NewPage命令,PageControl組件將生成一個(gè)缺省名為“TabSheetN”的頁(yè),其中N是從1開始的整數(shù)。第一次運(yùn)行New Page命令生成的頁(yè)名為TabSheet1,第二次生成的名為TabSheet2,以此類推。我們使用這個(gè)命令生成三個(gè)頁(yè)。C++ Builder 初學(xué)問(wèn)與答 (九)  與TabControl組件不同的是,你可以直接單擊頁(yè)來(lái)切換頁(yè)面。單擊頁(yè)在切換頁(yè)面的同時(shí)也選中了整個(gè)PageControl組件。假如要選擇某個(gè)頁(yè),可以先單擊頁(yè)切換到該頁(yè),然后再單擊頁(yè)面就可以了。



更多文章 更多內(nèi)容請(qǐng)看C/C++技術(shù)專題專題,或   (4)在對(duì)象編輯器中,選擇TabSheet1,TabSheet2和TabSheet3的Caption屬性,把它分別修改為第一頁(yè),第二頁(yè)和第三頁(yè)。  這樣看起來(lái)他們就完全一樣。  70)問(wèn):但要是一樣,為什么有兩個(gè)不同的組件呢,用一個(gè)不就行了,好象他們并不真的完全一樣?
  答:你說(shuō)的對(duì),千萬(wàn)不要被他們的外表假象所蒙蔽,實(shí)際上它們并不一樣。TabControl是一種“假”多頁(yè)組件,而PageControl才是“真”多頁(yè)組件。  我們知道多頁(yè)組件把所要顯示的信息放在不同的頁(yè)中,實(shí)際上每個(gè)頁(yè)都是一個(gè)窗體,并可以通過(guò)頁(yè)來(lái)進(jìn)行頁(yè)的切換。TabControl組件雖然有多個(gè)頁(yè),但是實(shí)際上只有一個(gè)頁(yè)的模板,也就是說(shuō),每次用戶單擊頁(yè)時(shí),這個(gè)頁(yè)都要根據(jù)頁(yè)模板更新一次,以便對(duì)用戶的選擇作出響應(yīng)。  很顯然,假如需要在每個(gè)頁(yè)上顯示不同的組件,那么TabControl肯定無(wú)法勝任這種工作。因?yàn)槟忝看螕Q頁(yè)時(shí),必須用代碼更新頁(yè)模板,這在C++Builder中實(shí)在不是一個(gè)好辦法。假如每個(gè)頁(yè)所顯示的組件相同只是內(nèi)容有變化,那么使用TabControl會(huì)更加合適,因?yàn)樗牡南到y(tǒng)資源比較少。  而PageControl則是每頁(yè)對(duì)應(yīng)一個(gè)頁(yè)模板。所以,它適宜于每頁(yè)都不同的情況。  71)問(wèn):TabControl組件有哪些常用的屬性?  答:HotTrack屬性用來(lái)確定當(dāng)鼠標(biāo)指向頁(yè)時(shí),頁(yè)上的標(biāo)簽是否自動(dòng)被加亮顯示。缺省值為False。  MultiLine屬性用來(lái)確定當(dāng)頁(yè)一行顯示不下時(shí)是否顯示到下一行。缺省值False表示在一行無(wú)法顯示完時(shí),在行的右邊自動(dòng)出現(xiàn)一個(gè)雙向箭頭,可以用來(lái)移動(dòng)頁(yè)。  TabHeight屬性用來(lái)設(shè)置頁(yè)的高度。缺省值0表示頁(yè)的高度將自動(dòng)適應(yīng)頁(yè)上文本的高度。  TabWidth屬性用來(lái)設(shè)置頁(yè)的寬度。缺省值0表示頁(yè)的寬度將自動(dòng)適應(yīng)頁(yè)上文本的寬度。  TabPosition屬性為tpTop時(shí),表示將頁(yè)放在TabControl組件的上面,為tpBottom時(shí)則表示放在下面。  TabControl組件上的每一個(gè)頁(yè)都有自己的索引,最左邊的頁(yè)的索引為0,緊接著的頁(yè)的索引為1,以此類推。TabIndex屬性返回當(dāng)前被按下的頁(yè)。  Tabs屬性用來(lái)設(shè)置頁(yè)的個(gè)數(shù)及其標(biāo)題,在設(shè)計(jì)時(shí)是使用一個(gè)字符串編輯器來(lái)實(shí)現(xiàn)的。  72)問(wèn):TabControl控件有哪些比較重要的事件呢?  答:TabControl有兩個(gè)比較重要的事件OnChange和OnChanging。每當(dāng)頁(yè)被選中后就會(huì)發(fā)生OnChange事件,這時(shí)可以根據(jù)屬性TabIndex判定哪個(gè)頁(yè)被選中,然后再采取響應(yīng)的動(dòng)作。  OnChanging事件正好發(fā)生在頁(yè)被選中之前,也就是正好在一個(gè)頁(yè)切換到另一個(gè)頁(yè)之前。這個(gè)事件使得我們可以在頁(yè)切換之前采取某些行動(dòng),例如在某些條件沒(méi)有設(shè)置之前不準(zhǔn)離開這一頁(yè)。  其實(shí)這兩個(gè)事件以前我們已經(jīng)具體的研究過(guò),這里就不再舉例說(shuō)明了。




更多文章 更多內(nèi)容請(qǐng)看C/C++技術(shù)專題專題,或   73)問(wèn):PageControl組件似乎比TabControl組件功能更強(qiáng)大,它是怎樣使用的?
  答:與TabControl相比,PageControl組件的功能確實(shí)更加強(qiáng)大,但是卻并不復(fù)雜。PageControl中的每一個(gè)頁(yè)都是一個(gè)TTabSheet組件,這個(gè)組件實(shí)際上是一個(gè)容器,你可以在上面放置各種控件。每個(gè)TTabSheet組件都有自己的屬性。  實(shí)際上這里有兩層關(guān)系。最頂層的是PageControl組件,它負(fù)責(zé)治理多個(gè)TTabSheet組件,而每個(gè)TTabSheet組件也治理著放在它上面的組件。  74)問(wèn):PageControl組件有哪些比較重要的屬性呢?  答:ActivePage這個(gè)屬性顯示當(dāng)前被選中的頁(yè),它也可以用來(lái)切換頁(yè)。  MultiLine屬性用來(lái)確定當(dāng)頁(yè)一行顯示不下時(shí)是否顯示到下一行。缺省值False表示在一行無(wú)法顯示完時(shí),在行的右邊自動(dòng)出現(xiàn)一個(gè)雙向箭頭,可以用來(lái)移動(dòng)頁(yè)。缺省值為False。  TabHeight屬性用來(lái)設(shè)置頁(yè)的高度。缺省值0表示頁(yè)的高度將自動(dòng)適應(yīng)頁(yè)上文本的高度。  TabWidth屬性用來(lái)設(shè)置頁(yè)的寬度。缺省值0表示頁(yè)的寬度將自動(dòng)適應(yīng)頁(yè)上文本的寬度。  TabPosition這個(gè)屬性的值為tpTop時(shí),頁(yè)將放在TabControl組件的上面,而為tpBottom時(shí)將顯示在下面。  此外,還有運(yùn)行時(shí)態(tài)屬性:  Pages這個(gè)只讀屬性是PageControl組件上所有的頁(yè)組成的數(shù)組。  PageCount這個(gè)屬性返回PageControl組件上的頁(yè)數(shù)。  75)問(wèn): PageControl的每一頁(yè)都是一個(gè)TTabSheet組件,那TTabSheet有些什么屬性呢?  答:TabVisible 這個(gè)屬性用來(lái)屏蔽某一頁(yè)的顯示。也說(shuō)是說(shuō),它的值為False的時(shí)候PageControl組件將不顯示這個(gè)頁(yè)了,但是這個(gè)頁(yè)還存在,你還可以把這個(gè)屬性設(shè)置為True來(lái)恢復(fù)它的顯示。在程序運(yùn)行期間不能刪除頁(yè),只能屏蔽頁(yè)的顯示。  PageIndex是頁(yè)的索引號(hào),  此外,還有運(yùn)行時(shí)態(tài)屬性。  PageControl屬性返回該頁(yè)所在的PageControl組件。  TabIndex屬性返回該頁(yè)在所有可見(jiàn)頁(yè)中的索引號(hào)。  因?yàn)樵诔绦蜻\(yùn)行時(shí)是不能刪除頁(yè)的,所以PageIndex索引號(hào)是固定不變的。但是頁(yè)可以被屏蔽,當(dāng)沒(méi)有頁(yè)被屏蔽時(shí),TabIndex與PageIndex完全相同;當(dāng)有頁(yè)被屏蔽時(shí),TabIndex就與PageIndex就不同了。TabIndex是這一頁(yè)在所有可見(jiàn)頁(yè)中的索引號(hào),也就是說(shuō),第一個(gè)可見(jiàn)頁(yè)的TabIndex是0,第二個(gè)可見(jiàn)頁(yè)的TabIndex是1,以此類推。  76)問(wèn):能設(shè)計(jì)一個(gè)例子讓我更好的理解一下它們嗎?  答:好的 ,首先在TabControl組件的頁(yè)面上放置一個(gè)編輯框組件。  然后在PageControl組件的Tab1頁(yè)中放置一個(gè)編輯框組件。  接著將PageControl組件切換到Tab2頁(yè),放置一個(gè)文本編輯框組件。  最后,編譯并運(yùn)行這個(gè)程序。  點(diǎn)擊tabControl組件的tab1到tab3標(biāo)簽,可以看出,編輯框出現(xiàn)在組件的每一頁(yè)中。  點(diǎn)擊PageControl組件的tab1到tab3標(biāo)簽,可以看出,每一頁(yè)組件都不相同。



更多文章 更多內(nèi)容請(qǐng)看C/C++技術(shù)專題專題,或

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永兴县| 长宁区| 乌兰察布市| 共和县| 红安县| 璧山县| 潼关县| 旬邑县| 阳山县| 平遥县| 紫金县| 新巴尔虎左旗| 楚雄市| 蛟河市| 个旧市| 白城市| 平阴县| 长沙县| 韩城市| 灵川县| 余庆县| 岫岩| 陵水| 昌宁县| 唐河县| 新昌县| 万全县| 修文县| 乐至县| 古田县| 花莲市| 武宣县| 九江市| 沈丘县| 德格县| 盐源县| 克山县| 宁晋县| 贵定县| 光山县| 永昌县|