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

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

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

2019-11-17 05:04:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  3. 按鈕類組件
  
  21)問(wèn):在進(jìn)行Windows程序界面設(shè)計(jì)中,經(jīng)常會(huì)用到按鈕,在C++Builder中,按鈕一定是通過(guò)按鈕組件來(lái)實(shí)現(xiàn)的嗎?


  答:是的,并且C++Builder的按鈕類組件十分豐富。BCB提供了兩類按鈕類組件:一類是執(zhí)行類按鈕,另一類是信息類按鈕。所謂執(zhí)行類按鈕是指它們通常用來(lái)啟動(dòng)程序運(yùn)行的,比如按鈕、位圖按鈕、加速按鈕。而信息類按鈕一般用來(lái)獲取信息,包括單選按鈕和復(fù)選框。靈活地使用各種按鈕,不僅可以使程序更加豐富多彩,而且可以提高程序的性能。

  22)問(wèn):那么按鈕組件有哪些常用的屬性和方法呢?

  答:對(duì)于按鈕組件,Caption屬性用來(lái)描述按鈕的標(biāo)題,也就是按鈕上顯示的文本,它與標(biāo)簽組件很相識(shí),我們同樣可以在這個(gè)屬性中為按鈕指定快捷鍵。

  當(dāng)Cancel屬性值為T(mén)rue時(shí),用戶無(wú)論何時(shí)按下Esc鍵,都會(huì)產(chǎn)生OnClick事件,當(dāng)窗體上有多個(gè)按鈕時(shí),Esc鍵觸發(fā)TabOrder值最小的那個(gè)按鈕的OnClick事件。它的缺省值為False

  當(dāng)Default屬性值為true時(shí),用戶無(wú)論何時(shí)按下Enter鍵時(shí),都會(huì)產(chǎn)生OnClick事件,與Cancel屬性不同的是,假如輸入焦點(diǎn)正好在一個(gè)按鈕上,那么會(huì)產(chǎn)生這個(gè)按鈕的OnClick事件。否則,產(chǎn)生TabOrder的值最小的那個(gè)按鈕的OnClick事件。它的缺省值為T(mén)rue

  Hint屬性保存著按鈕的提示內(nèi)容,當(dāng)用戶把鼠標(biāo)光標(biāo)停留在按鈕上時(shí),就會(huì)顯示提示信息。

  ShowHint屬性用來(lái)確定是否顯示提示文本,缺省值為False。

  按鈕常用的事件就是OnClick事件,OnClick事件在鼠標(biāo)單擊按鈕時(shí)產(chǎn)生,另外,通過(guò)快捷鍵、enter鍵和Esc鍵也可以產(chǎn)生OnClick事件,一般情況下,按鈕都需要增加OnClick事件處理程序。

  23)問(wèn):那么位圖按鈕又有什么特點(diǎn)呢?

  答:位圖按鈕BitBTn除了可以像普通按鈕那樣顯示文本外,還可以顯示圖形,除了具有一般按鈕所具有的全部屬性外,位圖按鈕還有一個(gè)特有的Kind屬性。這個(gè)屬性用來(lái)設(shè)定按鈕為幾種預(yù)定義圖形按鈕風(fēng)格中的哪一種。這是幾種預(yù)定義按鈕風(fēng)格。這些做好的按鈕如下表:
 Kind屬性值按鈕外觀等價(jià)屬性設(shè)置bkCustomC++ Builder 初學(xué)問(wèn)與答(三)缺省值用來(lái)給用戶制定bkOKC++ Builder 初學(xué)問(wèn)與答(三)Caption=”O(jiān)K”ModalResult=mrOKDefault=truebkCancelC++ Builder 初學(xué)問(wèn)與答(三)Caption=”Cancel”ModalResult=mrCancelCancel=truebkYesC++ Builder 初學(xué)問(wèn)與答(三)Caption=”&Yes”ModalResult=mrYesDefault=truebkNoC++ Builder 初學(xué)問(wèn)與答(三)Caption=”&No”ModalResult=mrNoCancel=truebkHelpC++ Builder 初學(xué)問(wèn)與答(三)Caption=”&Help”bkCloseC++ Builder 初學(xué)問(wèn)與答(三)Caption=”&Close”bkAbortC++ Builder 初學(xué)問(wèn)與答(三)Caption=”Abort”ModalResult=mrAbortbkRetryC++ Builder 初學(xué)問(wèn)與答(三)Caption=”&Retry”ModalResult=mrRetrybkIgnoreC++ Builder 初學(xué)問(wèn)與答(三)Caption=”&Ignore”ModalResult=mrIgnorebkAllC++ Builder 初學(xué)問(wèn)與答(三)Caption=”&All”ModalResult=mrAll

   更多文章 更多內(nèi)容請(qǐng)看C/C++技術(shù)專題專題,或
  當(dāng)把Kind的屬性值設(shè)置為bkCustom時(shí),還可以給位圖按鈕指定其他的圖形,具體的方法是,在對(duì)象編輯器中選擇Glyph屬性,然后單擊Value列中的省略號(hào)按鈕,這時(shí)會(huì)出現(xiàn)一個(gè)圖形編輯對(duì)話框,要求指定位圖的位置。

  單擊Load按鈕,在文件打開(kāi)對(duì)話框中選擇一個(gè)位圖文件就可以了。要注重的是,假如選擇的位圖太大,位圖按鈕不會(huì)自動(dòng)調(diào)整其尺寸,這時(shí)你只能看到一部分的圖形。

  24)問(wèn):位圖按鈕組件的NumGlyph屬性有什么作用?

  答:屬性NumGlyph指出位圖按鈕使用的位圖的數(shù)目,當(dāng)你需要位圖按鈕使用多個(gè)位圖分別表示按下,彈起等不同狀態(tài)時(shí),必須保證這些位圖具有相同的尺寸,并且一個(gè)接著一個(gè)地水平排列著。

  在C++Builder中,一個(gè)位圖按鈕最多可有四個(gè)位圖,因此,NumGraph地取值范圍只能是1到4,C++Builder將根據(jù)位圖按鈕地狀態(tài)確定顯示哪個(gè)位圖。

  一般來(lái)說(shuō),當(dāng)按鈕未選中時(shí)顯示第一個(gè)位圖。

  當(dāng)按鈕不能選擇時(shí),顯示第二個(gè)位圖,

  當(dāng)按鈕被單擊時(shí)顯示第三個(gè)位圖,

  當(dāng)用戶釋放鼠標(biāo)鍵時(shí),又會(huì)重新顯示第一個(gè)位圖,

  當(dāng)沒(méi)有希望的位圖時(shí),那么所有地狀態(tài)都使用第一個(gè)位圖。

  25)問(wèn):快捷按鈕有哪幾個(gè)重要屬性?

  答:快捷按鈕與位圖按鈕很相似,也可以顯示圖像,但也有一些不同之處:快捷按鈕一般都比較小,缺省大小25*25,基本上都是只顯示圖像而不顯示文字,最大差別是,快捷可以保持在按下的狀態(tài),而其它兩類按鈕不能??旖莅粹o一般都是用來(lái)制作工具欄按鈕,這時(shí)要和Panel配合使用。下面來(lái)看一下它的重要屬性:

  AllowAllUp:設(shè)置一個(gè)組的快捷按鈕是否可以全部處于彈起的狀態(tài)。缺省為false,這時(shí)可以用來(lái)模擬單選按鈕,讓同一個(gè)組的總有一個(gè)按鈕處在按下?tīng)顟B(tài)。假如一個(gè)組中只有一個(gè)快捷按鈕,把這個(gè)屬性改為true,這時(shí)這個(gè)按鈕就可以在按下和彈起兩個(gè)狀態(tài)之間切換,可以用來(lái)模擬一個(gè)復(fù)選按鈕。

  Down:表示按鈕是否按下,若設(shè)為true,則處于按下的狀態(tài)。

  GroupIndex:用來(lái)把幾個(gè)這個(gè)屬性相同的快捷按鈕編為一組,即相同取值的按鈕為一組。缺省為0,表示這個(gè)按鈕不編成組。

  26)問(wèn):那么單選按鈕又有什么特點(diǎn)呢?

  答:?jiǎn)芜x按鈕RadioButton是相互排斥的一種選擇組件,在一組單選按鈕中用戶一次只能選取一個(gè)單選按鈕。

  雖然你可以只使用一個(gè)單選按鈕,但是那樣單選按鈕也就失去了意義。單選按鈕一般都是成組出現(xiàn)的。

  單選按鈕只有一個(gè)比較非凡的屬性Checked,它表示按鈕是否被選中。缺省情況下,Checked的屬性是False,表示按鈕未選中。

  另外單選按鈕也具備Caption屬性,這就意味著它也可以通過(guò)快捷鍵來(lái)選中。

  單選按鈕在成組使用時(shí)有一些特點(diǎn)需要把握。當(dāng)你在同一容器(如:Form、Panel、GroupBox等)上直接放置單選按鈕時(shí),這些單選按鈕自成一組,也就是說(shuō),無(wú)論在容器上放置2個(gè)或者幾十個(gè)單選按鈕,它們都是一組的,每次只能選中它們中的某一個(gè)?! ?更多文章 更多內(nèi)容請(qǐng)看C/C++技術(shù)專題專題,或

  27)問(wèn):假如我想在窗體上放置不止一組按鈕,應(yīng)該怎么辦?

  答:可以用兩種方法。一種是使用組合框(GroupBox),另一種是使用單選按鈕分組框(RadioGroup)。

  組合框顧名思義就是用來(lái)把許多組件組合起來(lái),使窗口變得整潔而有條理,每一組不同的按鈕使用一個(gè)組合框。在設(shè)計(jì)時(shí),首先把組合框放在窗體上,然后再把單選按鈕放在分組框上。要記住的是,放置次序不能顛倒。一旦把單選按鈕放在分組框中,那么這個(gè)單選按鈕就屬于這個(gè)組合框了,你無(wú)法把它從組合框中移走,假如刪除組合框的話,分組框中所有的單選按鈕也會(huì)被同時(shí)刪除。

  在實(shí)際應(yīng)用中,我們經(jīng)常使用單選按鈕分組框而不是單選按鈕。因?yàn)閱芜x按鈕分組框可以包含多個(gè)單選按鈕,而它實(shí)際上只是一個(gè)組件。這比使用分組框和多個(gè)單選按鈕更直觀和簡(jiǎn)單。

  28)問(wèn):?jiǎn)芜x按鈕分組框又有哪些非凡的屬性呢?

  答: 單選按鈕分組框有三個(gè)屬性是比較非凡的:

  屬性Items是類TStrings的一個(gè)對(duì)象,這一點(diǎn)與Memo組件中的Lines屬性很相似,但是它們的含義不同,Lines屬性包含Memo組件中顯示的每一行字符串,而Items屬性雖然也包含許多字符串,但是每一個(gè)字符串代表單選按鈕組中的一個(gè)單選按鈕。

  單擊Items屬性Value列中的省略號(hào)按鈕,可以打開(kāi)一個(gè)字符串編輯器,然后在這個(gè)編輯器中可以輸入單選按鈕的標(biāo)題。每個(gè)單選按鈕占用一行。


  Columns屬性決定著單選按鈕分組框內(nèi)分欄的數(shù)目,默認(rèn)是1,最多可以有16欄,即16列。

  ItemIndex屬性為單選分組框中被選中項(xiàng)的序號(hào)。-1表示不指向任何一個(gè)項(xiàng)。

  29)問(wèn):復(fù)選按鈕(CheckBox)有什么作用?

  答:復(fù)選按鈕與單選按鈕不同,你可以一次選擇多個(gè)復(fù)選按鈕。復(fù)選按鈕有幾個(gè)比較重要的屬性。

  Alignment屬性控制復(fù)選框標(biāo)題的位置。

  taRightJustify
  標(biāo)題出現(xiàn)在復(fù)選框的右邊
  
  taLeftJustify
  標(biāo)題出現(xiàn)在復(fù)選框的左邊

  缺省值為taRightJustify。

  AllowGrayed屬性決定復(fù)選框是否可以處于灰色的狀態(tài),當(dāng)屬性值為T(mén)rue時(shí),復(fù)選框有三種狀態(tài),選中、未選中、和灰色;當(dāng)屬性值為False時(shí),復(fù)選框只有兩種狀態(tài)。缺省值為false。

  Checked屬性確定復(fù)選框是否被選中。缺省值為false?! ?更多文章 更多內(nèi)容請(qǐng)看C/C++技術(shù)專題專題,或

  要知道復(fù)選框是選中狀態(tài)、未選中狀態(tài)還是灰色狀態(tài)。,可以在運(yùn)行的時(shí)候,用程序讀取運(yùn)行時(shí)態(tài)變量State的值,缺省值為cbUnChecked。

  雖然復(fù)選框之間并不互相排斥,也就是說(shuō),直接放置在窗體上的每一個(gè)復(fù)選按鈕相互之間都不干擾,但是最好還是把復(fù)選框分組使用。這樣做的好處是便于用戶理解。

  30)問(wèn): CheckBox、RadioButton如何完成動(dòng)態(tài)改變其按鈕的標(biāo)題? RadioGroup能動(dòng)態(tài)添加吧?讀取上面三個(gè)組件標(biāo)題又如何做呢?
  答:CheckBox、RadioButton的屬性里有一個(gè)Caption,它的屬性值就是按鈕的標(biāo)題,所以應(yīng)該說(shuō)對(duì)這兩個(gè)組件來(lái)說(shuō)很輕易做到的:

  CheckBox1->Caption=”信息”;

  Label1->Caption= CheckBox1->Caption;

  RadioButton與CheckBox一樣,這里就不多說(shuō)了。

  而RadioGroup里面有一個(gè)Items屬性,這在《閑談BCB》中說(shuō)過(guò)這個(gè)問(wèn)題,所以你要添加按鈕,可以用下面的方法:

  RadioGroup1->Items->Add(“我是新來(lái)的”);

  讀取可以利用ItemsIndex來(lái)完成:

  Label1->Caption=RadioGroup1->Items->Strings[RadioGroup1->ItemIndex];

  String是把選中的序號(hào)轉(zhuǎn)換成你需要的文本,因?yàn)镮tems是Tstring對(duì)象,這類情況在你以后的學(xué)習(xí)中會(huì)經(jīng)??吹降摹?BR>
  要注重在RadioGroup中也有一個(gè)Caption,這是用來(lái)給單選分組框設(shè)置標(biāo)題的,這個(gè)標(biāo)題與單選的文字無(wú)關(guān)。

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 共和县| 昌吉市| 罗甸县| 屏山县| 华安县| 中超| 尼勒克县| 黄冈市| 治县。| 苏尼特左旗| 孝感市| 镇雄县| 兴城市| 福海县| 平阳县| 福清市| 晋江市| 松阳县| 通化市| 东平县| 灵璧县| 靖边县| 乐山市| 禹州市| 温州市| 商南县| 时尚| 郑州市| 江油市| 轮台县| 苗栗县| 沁水县| 乌什县| 图们市| 永济市| 永和县| 昌吉市| 彩票| 阜城县| 利川市| 洛浦县|