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

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

C++ Builder 初學(xué)問與答(四)

2019-11-17 05:05:55
字體:
供稿:網(wǎng)友
  4.列表類組件
  31)問:當(dāng)我需要使用多個選項的時候,使用單選按鈕或復(fù)選框來進(jìn)行選擇不是很恰當(dāng),因為在窗體上放置大量的按鈕既不利于布局的美觀,又會消耗大量的系統(tǒng)資源,C++Builder有什么解決辦法嗎?  答:可以使用列表框(ListBox、CheckListBox)或組合框(ComboBox)這兩類最常用的列表組件?! ?2)問:列表框有那些主要屬性?  答:列表組件ListBox在缺省情況下,只能進(jìn)行單項選擇,當(dāng)屬性MultiSelected為True時,可以進(jìn)行多項選擇。這時你只要單擊想要的選項,那么這些選項都會被選中。

 C++ Builder 初學(xué)問與答(四)
  Items屬性:列表框中的所有選項都是通過這個屬性來進(jìn)行訪問的。設(shè)置時只要點擊Items右邊的“…”就可以編輯了?! ‘?dāng)屬性ExtendedSelect也等于True時,有兩種方法可以進(jìn)行多項選擇。一種是單擊選項同時按下Ctrl鍵,這樣可以選中兩個選項之間的所有選項。它的缺省值為False?! orted屬性確定列表框中顯示的內(nèi)容書否按照字母順序排列。缺省值為False。  當(dāng)不答應(yīng)多項選擇時,我們通過屬性ItemIndex就可以返回被選中的選項。但是,假如打開了多項選擇,那么屬性ItemIndex只返回最后個被選中的選項序號(有些書上也說返回選中選項中具有輸入焦點的選項序號,但我覺得這種說法有點不易讓初學(xué)者理解)?! elCount屬性在MultiSelected屬性為True時,指出了列表框中被選中項目的個數(shù)。當(dāng)MultiSelected屬性為False時,它的值為-1?! elected屬性指出了列表框中的某個項目是否被選中?! checkListBox是從TcustomListBox繼續(xù)下來的的,TListBox也是直接從TcustomListBox繼續(xù)下來的,因此這兩個組件是兄弟關(guān)系,它們的屬性和使用都非常相似。下面來看看它的不同之處:
   更多文章 更多內(nèi)容請看C/C++技術(shù)專題專題,或   AllowGrayed屬性和多選按鈕一樣,當(dāng)屬性值為True時,則列表框中的選項有三種狀態(tài):選中、未選中和選中但變灰;當(dāng)屬性值為False時,列表框只有兩種狀態(tài)。缺省值為false。
  Checked其聲明為:_PRoperty  bool  Checked[int Index];這個屬性用來返回或者設(shè)置列表框中的指定選項是否被選中。其中參數(shù)Index表示指定的選項的序號?! ?2)問:那么,組合框和列表框相比有什么相似之處和不一樣的地方呢?  答:首先,從外觀上來說,列表框占據(jù)了比較大的空間,而組合框只需要一行的空間就可以了。從另一方面來說,組合框還帶有一個編輯框,用戶可以直接在編輯框中輸入文本,組合框在一般情況下只顯示這個編輯框,當(dāng)用戶單擊組合框右邊的下拉箭頭時,就會顯示一個包含所有選項的下拉列表。
  
  組合框和列表框最大的不同是組合框不能進(jìn)行多項選擇?! 〗M合框與列表框有一定的相似之處,就是它們都能夠包含許多的選項。但是組合框還是有不少獨特的屬性?! ?3)問:組合框有哪些常用屬性及事件呢?  答:屬性Style決定著組合框的樣式,C++Builder為組合框定義了五種不同的樣式。  CsDropDown:這時為一個標(biāo)準(zhǔn)的組合框,由一個編輯框和下拉列表組成?! sDropDownList:與標(biāo)準(zhǔn)組合框相似,但不能在編輯框中輸入文本?! ?a href="http://m.survivalescaperooms.com/article.asp?typeid=38">CSSimple:沒有下拉列表的組合框,只是一個編輯框,也就是說只能輸入不能選擇?! sOwnerDrawFixed和csOwnerDrawVariable這兩種樣式的組合框常用于需要圖像作為項目時,當(dāng)然你輸入字符串也可以。前面一種樣式組合框中各個項目的高度是固定的,而后面一種樣式的高度可以變化,也就是說,各個項目的高度可以不一樣,此外,在這兩種樣式中,編輯框是不可輸入的?! ext屬性用來設(shè)置或者返回組合框中顯示出來的文本內(nèi)容?! ‘?dāng)編輯框中的內(nèi)容發(fā)生變化時將觸發(fā)OnChange事件。所以在組合框里我們用的就是它。  注重下面四段兩組語句的區(qū)別與聯(lián)系:


  //………………第一組  void _fastcall TForm1::ComboBox1Change(TObject *Sender)  {  if(ComboBox1->Text!=””)  Edit1->Font->Size=StrToInt(ComboBox1->Text); 
   更多文章 更多內(nèi)容請看C/C++技術(shù)專題專題,或



  }  上面的代碼還可以寫成下面的樣子,它們的作用是一樣的:  void _fastcall TForm1::ComboBox1Change(TObject *Sender)  {  if(!ComboBox1->Text.IsEmpty())  Edit1->Font->Size= ComboBox1->Text.ToInt();  }  //………………第二組  void _fastcall TForm1::ComboBox2Change(TObject *Sender)  {  Edit1->Font->Name= ComboBox2->Text;  }  也可以用下面的代碼,它們在這里是等價的:  void _fastcall TForm1::ComboBox2Change(TObject *Sender)  {  Edit1->Font->Name= ComboBox2->Items->String[ComboBox2->ItemIndex];  }
  我想通過對比,你會明白這些語句的區(qū)別與聯(lián)系的,什么時候用什么樣的語句,細(xì)細(xì)品味一下你就會明白了。C++ Builder 初學(xué)問與答(四)  34)問:前面您提到了面板組件,它是一種什么類型的組件?  答:它是一種容器組件,容器組件是可以包含其他組件的組件,最典型的容器組件就是窗體。其他比較常用的容器組件有面板(Panel)、組合框(GroupBox)。

   更多文章 更多內(nèi)容請看C/C++技術(shù)專題專題,或   面板組件可以容納其他組件。任何放置在面板上的組件都會成為面板的子組件,當(dāng)你刪除面板組件時,放置在面板上的其他組件也同時被刪除了,這是容器組件的共同特點。
  面板組件沒有什么非凡的屬性,只有BevelInner(面板內(nèi)部斜面),BevelOuter(面板外部斜面),BevelWidth(斜面寬度,單位像素),BorderStyle(邊界風(fēng)格)和BorderWidth(邊界寬度)幾個屬性有一些特點。這些屬性的任意組合可以生成各種效果的邊框。你可以設(shè)置這幾個屬性的值,可以得到不同的面板效果?! ∑渲蠦evelInner(面板內(nèi)部斜面),BevelOuter(面板外部斜面)的屬性值是一樣的:bvNone(缺省值)表示沒有斜面;  bvLowered表示為沉降的斜面;  bvRaised表示為上升的斜面?! 〗M合框(GroupBox)屬性中你只要設(shè)置好Caption就可以了,它是標(biāo)題的名稱,表示此組合框類別、功能、選項等。GroupBox1為默認(rèn)名稱?! ?.非凡的輸入控制類組件
  35)問:C++Builder有哪些輸入控制類組件?  答:C++Builder輸入控制類組件主要包括滾動條(ScrollBar)、軌跡條(TrackBar)、進(jìn)程條(ProgressBar)以及加減組件UpDown,它們都可以實現(xiàn)邊續(xù)范圍內(nèi)數(shù)值的選擇?! ?6)問:滾動條主要用在什么地方,它又有哪些常用屬性呢?  答:滾動條是常見的組件,它經(jīng)常出現(xiàn)在列表框、Memo等組件中。這時,它是作為這些組件的一部分而存在的。其實滾動條還可以單獨使用,單獨使用時,滾動條一般用來控制連續(xù)的數(shù)值輸入。象調(diào)節(jié)音量等,都可以使用滾動條輸入?! L動條有這樣一些常用屬性  1.Position:這個屬性用來設(shè)置或者返回當(dāng)前流動條中滑塊的位置。屬性Max,Min,用來設(shè)置滾動條可以滾動的最大或最小位置。當(dāng)Position等于Max時,滾動塊位于滾動條的最右端;當(dāng)Position等于Min時,滾動塊位于滾動條的最左端。當(dāng)Position等于Max和Min之間的某一個值時,滾動塊位于滾動條中間的某個位置。  2.屬性Kind。屬性Kind有兩個可能的取值:sbHorizontal(缺省值)和sbVertical,分別表示水平滾動條和垂直滾動條。  3.屬性SmallChange決定當(dāng)用戶單擊滾動條兩端的箭頭按鈕時滾動塊移動的距離。  4.屬性LargeChange確定當(dāng)用戶單擊滾動塊兩邊的空白或按下PgUp和PgDn鍵時,滾動塊移動的距離。屬性LargeChange和SmallChange的取值范圍是1到32767。
   更多文章 更多內(nèi)容請看C/C++技術(shù)專題專題,或   37)問:滾動條能夠響應(yīng)哪些常用事件呢?  答:滾動條的常用事件是OnChange,只要屬性Position的值發(fā)生改變都會產(chǎn)生這個事件。一般情況下,了解滾動條的這個屬性就可以了。
  但是有時候可能需要更具體地了解用戶單擊了滾動條的哪個位置,這時就需要響應(yīng)OnScroll事件,其聲明為:-_property TScrollEvent OnScroll;其中TscrollEvent的聲明為:typedef void fastcall (closuer TScrollEvent)(System::Tobject Sender,TscrollCode ScrollCode,int &ScrollPos); OnScroll事件處理程序帶有三個參數(shù):  其中參數(shù)Sender指出了是哪個對象發(fā)送了這個消息,參數(shù)ScrollPos指出了滾動塊的位置,參數(shù)ScrollCode返回滾動條的狀態(tài),這些狀態(tài)是用這樣一些參數(shù)值表示的,  scLineUp

  表示用戶單擊了滾動條左端的箭頭按鈕(水平滾動條)或上端的箭頭按鈕(垂直滾動條)。
  
  scLineDown
  表示用戶單擊了滾動條右端的(水平滾動條)或下端的箭頭按鈕(垂直滾動條)。
  
  scPageUp
  表示用戶單擊了滾動塊左邊(水平滾動條)或上邊(垂直滾動條)的區(qū)域。
  
  scPageDown
  表示用戶單擊了滾動塊右邊(水平滾動條)或下邊(垂直滾動條)的區(qū)域。
  
  scPosition
  表示用戶移動了滾動條但是已經(jīng)釋放了。
  
  scTrack
  表示用戶正在移動滾動塊。
  
  scTop
  表示用戶把滾動塊移動到了滾動條的左端(水平滾動條)或頂端(垂直滾動條)。
  
  scBottom
  表示用戶把滾動塊移動到了滾動條的右端(水平滾動條)或下端(垂直滾動條)。
  
  scEndScroll
  表示用戶結(jié)束了移動滾動塊的操作,釋放了鼠標(biāo)或者鍵盤按鍵。
  
 ?。ùm(xù))
     更多文章 更多內(nèi)容請看C/C++技術(shù)專題專題,或

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 望谟县| 永新县| 习水县| 杂多县| 淳化县| 仁布县| 黄骅市| 定州市| 乌鲁木齐县| 化州市| 惠州市| 常州市| 任丘市| 临湘市| 钦州市| 高阳县| 龙岩市| 温宿县| 治县。| 时尚| 衡东县| 弥渡县| 葫芦岛市| 九龙坡区| 闸北区| 皮山县| 保定市| 天长市| 沙洋县| 元阳县| 玛沁县| 科尔| 芒康县| 哈巴河县| 晋城| 双柏县| 建阳市| 高台县| 津市市| 拜城县| 临沂市|