




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第4章 常用組件導(dǎo)讀4.1 組件概述組件概述4.2 文本輸入類組件4.3 按鈕類組件4.4 列表類組件小結(jié)習(xí)題導(dǎo)讀在使用Delphi 8 for .NET開發(fā)應(yīng)用程序時(shí)將廣泛地使用到組件??梢暬M件庫(Visual Component Library,簡稱VCL)是Delphi中最重要的部分,通過VCL可以在窗體中方便地構(gòu)建供用戶交互的界面。本章將主要介紹Delphi常用組件的基本功能及主要屬性、方法等內(nèi)容。學(xué)習(xí)目標(biāo):了解組件的分類掌握文本輸入類常用組件的使用掌握按鈕類常用組件的使用掌握列表類常用組件的使用4.1 4.1 組件概述組件概述4.1.1 組件分類組件分類1可視化組件(可視化組件(V
2、isual Component) 可視化組件在程序運(yùn)行期間用戶是可以看到的,也稱為組件(Control)。組件又有兩種不同的類型,即基于窗口的組件和基于圖形的組件?;诖翱诘慕M件(即窗口組件)是可以在運(yùn)行時(shí)取得焦點(diǎn)的組件,能夠包含其他組件,擁有窗口句柄,如Edit組件。圖形組件沒有窗口句柄,不能取得輸入焦點(diǎn),也不能包含其他組件,如Label組件。圖形組件在最小化使用系統(tǒng)資源方面起著關(guān)鍵作用,特別是在那些頻繁使用以及數(shù)量大的情況下最好使用圖形組件,如工具條按鈕。2非可視化組件(非可視化組件(Nonvisual Component) 非可視化組件是指在程序運(yùn)行期間用戶看不到的組件,它們是從TCom
3、ponent但不是從TControl派生出來的子類。非可視化組件主要用來向其他組件或整個(gè)應(yīng)用程序提供某種服務(wù),在設(shè)計(jì)時(shí)無需考慮它們在窗體中的位置。非可視化組件一般以圖標(biāo)形式顯示,最典型的一個(gè)非可視化組件是定時(shí)器組件(TTimer)。4.1 4.1 組件概述組件概述組件的常見基本屬性屬性含義Height高度Width寬度Left組件在容器中的x坐標(biāo)Top組件在容器中的y坐標(biāo)Align組件上的對齊方式:居上、居下、居左、居右、占據(jù)剩余Visible設(shè)置組件是否顯示,默認(rèn)值為“true”Caption顯示組件的標(biāo)題名稱Color顯示組件的背景顏色Font設(shè)置組件顯示文本的字體Ctl3D是否以3D方式
4、顯示組件,默認(rèn)值為“true”ShowHint是否顯示組件的提示信息,默認(rèn)值為“true”Hint組件的提示信息Enabled用戶是否能夠操作Name對組件進(jìn)行標(biāo)識的名稱TabOrderTab次序4.1 4.1 組件概述組件概述4.1.2 組件的常用屬性及事件組件的常用屬性及事件 在Delphi中,每一個(gè)組件都具有特定的屬性、事件和方法。組件的屬性是對組件特性的描述,包括組件的外觀特性(如位置、尺寸、外形、字體、可視性)和非可視化的特性,組件常見的基本屬性見表4-1。組件的事件是對組件所做的某個(gè)動(dòng)作或系統(tǒng)的某些行為(如按下鼠標(biāo)、雙擊鼠標(biāo)、窗體裝入等)的反應(yīng)。每個(gè)組件都提供滿足用戶的各類事件處理
5、器,當(dāng)發(fā)生特殊事件時(shí),應(yīng)用程序?qū)?zhí)行事件處理器中的代碼。組件的常用事件及觸發(fā)條件見表4-2。組件的方法是指屬于該組件類或?qū)ο箢愋蛯?shí)例的函數(shù)或過程,每一類組件都有自己的方法,以實(shí)現(xiàn)各種功能。4.1 4.1 組件概述組件概述組件的常用事件及觸發(fā)條件事件名觸發(fā)條件OnClick當(dāng)鼠標(biāo)單擊時(shí)觸發(fā)本事件OnDblClick當(dāng)鼠標(biāo)雙擊時(shí)觸發(fā)本事件OnMouseDown當(dāng)鼠標(biāo)左鍵按下時(shí)觸發(fā)本事件OnMouseMove當(dāng)鼠標(biāo)移動(dòng)時(shí)觸發(fā)本事件OnKeyDown當(dāng)按下任意鍵(包括組合鍵)時(shí)觸發(fā)本事件OnKeyPress當(dāng)按下任意鍵(單字符鍵)時(shí)觸發(fā)本事件OnKeyUp當(dāng)松開已按下鍵時(shí)觸發(fā)本事件OnEnter當(dāng)獲得
6、焦點(diǎn)時(shí)觸發(fā)本事件OnExit當(dāng)失去焦點(diǎn)時(shí)觸發(fā)本事件OnStartDrag當(dāng)開始拖動(dòng)時(shí)觸發(fā)本事件OnDragDrop當(dāng)組件拖動(dòng)操作結(jié)束時(shí)觸發(fā)本事件4.2 文本輸入類組件在應(yīng)用程序的界面上,往往需要用戶輸入文本數(shù)據(jù),或者以一定的格式將文本顯示給用戶,這時(shí)可通過文本輸入類組件來實(shí)現(xiàn)。4.2 文本輸入類組件4.2.1 TLabel組件組件TLabel標(biāo)簽組件位于組件面板的Standard選項(xiàng)卡上,如圖4-1所示,可以用來顯示一個(gè)只讀的字符串。通常利用TLabel標(biāo)簽組件在窗體上顯示靜態(tài)文本,如顯示提示信息,也可顯示動(dòng)態(tài)文本,如用TLabel顯示不斷變化的當(dāng)前時(shí)間。1用途用途 TLabel組件主要用來標(biāo)
7、識應(yīng)用程序中的其他對象,最常見的用法是把標(biāo)簽放在其他組件的旁邊,如放在文本框、Memo框及單選按鈕等組件的左側(cè)或上方。標(biāo)簽上的文字信息有助于用戶操作,也可為用戶提供信息。2主要屬性和方法主要屬性和方法 TLabel組件常用的屬性見前面的表4-1。下面介紹TLabel組件的主要屬性和方法。4.2 文本輸入類組件(1)A1ign屬性:該屬性決定TLabel組件的顯示位置(使其位于窗口的某個(gè)部分)(2)Alignment屬性:該屬性設(shè)置文字在水平方向的對齊方式,(3)AutoSize屬性:該屬性決定標(biāo)簽的大小是否和文字保持一致,其默認(rèn)值為false,即標(biāo)簽的大小不隨文字的大小而變化。(4)Layou
8、t屬性:該屬性設(shè)置文字在垂直方向的對齊方式,(5)TransParent屬性:該屬性決定標(biāo)簽是否透明顯示,主要在圖形操作時(shí)使用,如果將其設(shè)置為true,則可透過標(biāo)簽看到背景圖。(6)WordWrap屬性:該屬性決定當(dāng)AutoSize屬性為true時(shí),文字超長時(shí)的顯示方式。該屬性為true時(shí),則文字在縱向方向擴(kuò)展,以多行顯示;為false時(shí),則文字在橫向方向擴(kuò)展,以完全容納文本內(nèi)容。4.2 文本輸入類組件4.2.2 TEdit組件組件TEdit文本框組件位于組件面板的Standard選項(xiàng)卡上,如圖4-1所示,可以顯示、編輯單獨(dú)的一行文本。1用途用途 TEdit組件提供了一個(gè)編輯區(qū)域,用戶可以在區(qū)
9、域中輸入單行信息。TEdit不但允許用戶在文本框中輸入數(shù)據(jù),也可以用來顯示查詢的數(shù)據(jù)及提示信息。4.2 文本輸入類組件2主要屬性和方法主要屬性和方法 (1)AutoSelect屬性:該屬性用來設(shè)置當(dāng)TEdit組件獲得輸入焦點(diǎn)時(shí),自動(dòng)選中所有的文本。若它的值為true,則當(dāng)TEdit組件獲得輸入焦點(diǎn)時(shí),自動(dòng)選中所有的文本;若它的值為false,則當(dāng)TEdit組件獲得輸入焦點(diǎn)時(shí),不自動(dòng)選中所有的文本。 (2)AutoSize屬性:用于控制是否隨字體的高度來改變編輯框的高度。當(dāng)AutoSize設(shè)置為true時(shí),編輯框的高度會(huì)自動(dòng)匹配輸入文字的字體高度。但要注意,該屬性只有當(dāng)BorderStyle屬性
10、設(shè)置為bsSingle時(shí)才有效。 (3)CharCase屬性:該屬性用于強(qiáng)制組件中的文本全部為大寫(或小寫)字母。 (4)Enabled屬性:該屬性決定文本框中的內(nèi)容是否可以修改,其默認(rèn)值為true,即文本框中的文本可以修改;當(dāng)它的值為false時(shí)其中的文本不能修改。4.2 文本輸入類組件 (5)Hint屬性:該屬性用來設(shè)置所顯示的提示信息。例如通過將該屬性設(shè)置為“請輸入職工姓名”,并將ShowHint屬性設(shè)置為true,則在應(yīng)用程序運(yùn)行時(shí)當(dāng)用戶將鼠標(biāo)移到文本框并停頓片刻后,將顯示引號中的提示信息。 (6)ImeMode屬性:如果要設(shè)置為中文輸入法,可以將ImeMode屬性設(shè)置為imChine
11、se。 (7)ImeName屬性:可以通過下拉組合框選擇一個(gè)具體的輸入法。 (8)PasswordChar屬性:將用戶輸入的所有字符以同一個(gè)字符顯示,其默認(rèn)值是“#0”,表示編輯框直接顯示用戶輸入的字符;如果將其設(shè)置為“*”,則不論用戶輸入什么,編輯框中都只顯示“*”號,一般在鍵入密碼時(shí)可以這樣設(shè)置。 (9)Clear方法:該方法刪除文本框中的所有文本。4.2 文本輸入類組件 (10)ClearSelection方法:該方法刪除文本框中被選擇的文本。如果文本框中沒有被選擇的文本,則不刪除任何內(nèi)容。 (11)CopyToClipboard方法:該方法將文本框中已選擇的文本拷貝到剪貼板上,并取代原
12、來剪貼板中的所有內(nèi)容。如果用戶未在文本框中選擇任何文本,該方法的執(zhí)行將不刪除原來剪貼板的所有內(nèi)容。 (12)CutToClipboard方法:該方法將文本框中已選擇的文本拷貝到剪貼板上,并取代原來剪貼板中的所有內(nèi)容,然后刪除在文本框中被選中的內(nèi)容。 (13)PasteFromClipboard方法:該方法將剪貼板上的內(nèi)容拷貝到文本框中,并插入到文本框中光標(biāo)所在的當(dāng)前位置。 (14)SelectAll方法:該方法選擇文本框中的所有文本。Edit組件最常用的事件(也是默認(rèn)事件)為OnChange,一旦Edit組件中的文本內(nèi)容發(fā)生了改變,就會(huì)觸發(fā)OnChang4.2 文本輸入類組件【例4-1】設(shè)計(jì)用
13、戶登錄驗(yàn)證的窗體,用來接收用戶輸入的用戶名和口令,單擊“確定”按鈕進(jìn)行驗(yàn)證,根據(jù)輸入是否正確顯示相應(yīng)的提示信息。4.2 文本輸入類組件編寫DengLu窗體相應(yīng)的程序代碼。將組件添加到DengLu窗體后,編寫相應(yīng)的程序代碼。(*定義2個(gè)unit級符號常量*)const iusename=yonghu; /定義用戶名 ipassword=12345; /定義口令雙擊“確定”按鈕,在代碼編輯區(qū)中輸入該按鈕的OnClick事件處理代碼:procedure TDengLu.BtnOKClick(Sender:TObject); begin if ( usename.text=iusename)and(p
14、assword.text=ipassword) then MessageDlg(歡迎使用教師人事檔案系統(tǒng)!, mtInformation, mbOK, 0) else MessageDlg(對不起,您不是合法用戶!請重新輸入用戶名和密碼, mtInformation, mbOK, 0); end;雙擊“取消”按鈕,在編輯區(qū)輸入該按鈕的OnClick事件代碼:procedure TDengLu.BtnCancelClick(Sender: TObject);begin close;End;4.2 文本輸入類組件4.2.3 TMemo組件組件TMemo備注框組件位于組件面板的Standard選項(xiàng)卡
15、上,可以顯示、編輯多行文本。1用途用途 TMemo組件為用戶提供了一種處理多行文本的方法,還可用來快速閱讀文件中的數(shù)據(jù)。盡管TLabel、TEdit和TMemo組件有許多相似之處,但它們的使用場合卻有所不同。如果只顯示用戶不能修改的信息,可采用標(biāo)簽;如果用戶只處理單行信息,則使用TEdit組件;如果用戶要處理多行文本,那么只能采用TMemo組件。4.2 文本輸入類組件 2主要屬性主要屬性 TMemo組件的很多屬性(如MaxLength、ReadOnly和Text等)和TEdit組件的屬性類似,相同屬性的含義不再贅述。以下是TMemo組件的特殊屬性。(1)Lines屬性:返回TMemo組件中文本
16、的行數(shù)。(2)ScrollBars屬性:該屬性用來設(shè)置TMemo組件是否含滾動(dòng)條,(3)WantTabs屬性:該屬性用來設(shè)置是否可以使用Tab鍵來進(jìn)行文本編輯。若其值設(shè)置為true,則可以用Tab鍵來使TMemo組件獲得輸入焦點(diǎn),但不能用Tab鍵從TMemo組件切換到其他組件,默認(rèn)值為false。4.2 文本輸入類組件4.2.4 TRichEdit組件組件TRichEdit組件和TMemo組件幾乎完全相同,但是TRichEdit組件中的文字可以有多種字體、多種顏色。TRichEdit組件位于組件面板的Win32選項(xiàng)卡上,如圖4-4所示。TRichEdit組件可以編輯多行文本,它比TMemo的功
17、能更強(qiáng)大,能夠?qū)ψ煮w格式化和段落格式化,也能插入OLE文檔,支持鼠標(biāo)拖放,還可以搜索和打印。它是一個(gè)相當(dāng)完美的編輯器,保存的文件格式為RTF。但是TRichEdit組件沒有提供完整的用戶界面,諸如打開、保存、打印、剪貼、拷貝、搜索等操作,需要通過編程,結(jié)合其他組件來完成。TRichEdit的主要屬性、事件和方法與TMemo基本相似,在功能上TRichEdit更加豐富4.3 按鈕類組件Delphi為用戶提供了3種按鈕組件,也是平時(shí)在Windows應(yīng)用程序中經(jīng)常用到的按鈕:普通按鈕(Tbutton)位圖按鈕(TBitBtn)加速按鈕(TSpeedButton)4.3 按鈕類組件4.3.1 TBut
18、ton組件組件 TButton命令按鈕組件位于組件面板的Standard選項(xiàng)卡上,如圖4-1所示。1用途用途 TButton組件是提供給用戶用來執(zhí)行命令的組件,通常稱為命令按鈕。按鈕在Windows程序中使用非常廣泛,它可以放在應(yīng)用程序的任何地方,觸發(fā)之后執(zhí)行特定的操作。4.3 按鈕類組件2主要屬性主要屬性 (1)Cancel屬性:該屬性決定按鈕是否為Cancel按鈕。當(dāng)設(shè)置為true時(shí)為Cancel按鈕,即當(dāng)用戶按Esc鍵時(shí),將執(zhí)行按鈕的OnClick事件處理程序。當(dāng)窗體中有多個(gè)Cancel按鈕時(shí),則只調(diào)用TabOrder屬性最小的按鈕的OnClick事件。 (2)Caption屬性:該屬性
19、用來讓用戶識別組件,輸入屬性值顯示在組件表面。 (3)Default屬性:該屬性決定按鈕是否為默認(rèn)按鈕。如果將其設(shè)置為true則按鈕為默認(rèn)按鈕,此時(shí)當(dāng)用戶按Enter鍵時(shí),將執(zhí)行按鈕的OnClick事件處理程序。 (4)Enabled屬性:該屬性決定按鈕是否能對鼠標(biāo)、鍵盤和計(jì)時(shí)器事件做出響應(yīng)。 (5)ModalResult屬性:該屬性確定按鈕的父窗體的關(guān)閉方式。 (6)Name屬性:該屬性是組件的名稱,與Caption不同,它不顯示在組件表面,而是在應(yīng)用程序代碼中作為組件的名稱標(biāo)識4.3 按鈕類組件4.3.2 TBitBtn組件組件TBitBtn位圖按鈕組件位于組件面板的Additional選
20、項(xiàng)卡上,它為圖形按鈕組件。1用途用途 TBitBtn組件與其他按鈕一樣,在對話框和窗體中廣泛使用。該組件的作用和TButton組件相同,惟一的區(qū)別是可以在位圖按鈕上同時(shí)顯示文本信息和位圖。4.3 按鈕類組件2主要屬性主要屬性 (1)Glyph屬性:該屬性指定在用戶選擇的位圖按鈕表面顯示的圖形。單擊該屬性右邊的“”按鈕,彈出裝入位圖文件的Picture Editor對話框,如圖4-6所示,單擊此對話框中的Load按鈕選擇用戶需要的位圖,此時(shí)選擇的位圖將顯示在對話框中,再單擊OK按鈕后,位圖將顯示在按鈕上。 (2)Kind屬性:該屬性決定位圖按鈕的種類,包括bkAbort、bkAll、bkCanc
21、el、bkClose、bkCustom、bkHelp、bkIgnore、bkNo、bkOK、bkRetry、bkYes。 (3)Layout屬性:該屬性決定位圖在按鈕上的顯示位置,即位圖可以顯示在按鈕的左邊、右邊、上邊或下邊,包括:blGlyphBottom、blGlyphTop、blGlyphLeft、blGlyphRight。 (4)Margin屬性:該屬性確定位圖按鈕邊沿和位圖邊沿之間的距離,單位為像素。該屬性的默認(rèn)值為-1,表示位圖和文字都在按鈕的中間顯示,但相互不重疊。4.3 按鈕類組件(5)NumGlyphs屬性:當(dāng)用戶為位圖按鈕在Glyph屬性中指定多個(gè)圖像時(shí),必須用該屬性指定按
22、鈕要顯示的圖像,它的值可以是14之一,默認(rèn)值為1。(6)Spacing屬性:該屬性確定位圖按鈕上圖像和標(biāo)題之間的間隔。該屬性值可以是負(fù)數(shù)、0和正數(shù),默認(rèn)值為4。(7)Style屬性:該屬性決定位圖按鈕的外觀,共有3種可能的值:bsAutoDetect、bsWin31和bsNew,即位圖按鈕采用Windows哪一種版本的風(fēng)格。bsAutoDetect:表示當(dāng)使用Windows 3.x時(shí),位圖按鈕采用標(biāo)準(zhǔn)的Windows 3.x外觀,當(dāng)使用Windows 3.x以后的版本時(shí),位圖按鈕采用較新的外觀。bsWin31:表示不考慮所運(yùn)行的Windows版本而采用標(biāo)準(zhǔn)的Windows 3.1外觀。bsNe
23、w:表示不考慮所運(yùn)行的Windows版本而采用新的位圖按鈕外觀。4.3 按鈕類組件4.3.3 TSpeedButton組件組件TSpeedButton組件位于組件面板Additional選項(xiàng)卡上,如圖4-5所示,它為加速按鈕組件。1用途用途 TSpeedButton組件可以同時(shí)顯示圖形和文字,用法與位圖按鈕很相似。在按鈕上顯示圖像時(shí),它的圖像必須是Windows的位圖文件(.bmp)。該組件常和TToolBar、TPanel等組件一起使用,用戶使用該組件可快速建立工具欄和工具面板。4.3 按鈕類組件2主要屬性主要屬性 (1)AllowAllUp屬性:該屬性決定同組中的加速按鈕是否可一個(gè)都不選擇
24、。如果將其設(shè)置為true,那么在同一組中的加速按鈕可一個(gè)都不選擇,但可以出現(xiàn);如果將其設(shè)置為false,則必須選擇同一組中的快速按鈕之一,即必須有一個(gè)加速按鈕處于被按下狀態(tài)。默認(rèn)值為false。 (2)Down屬性:該屬性用來設(shè)置顯示狀態(tài)。如果將其設(shè)置為true,那么加速按鈕以按下狀態(tài)(Down)顯示;如果將其設(shè)置為false,則加速按鈕以未選中(UnSelect)狀態(tài)顯示。 (3)Flat屬性:若該屬性值為true,則按鈕在未選中狀態(tài)下沒有邊框,只有在選中狀態(tài)下才有邊框。 (4)GroupIndex屬性:該屬性決定哪些加速按鈕作為一組。默認(rèn)值為0,表示該組件不屬于某個(gè)組。具有相同GroupI
25、ndex屬性值且不為0的加速按鈕屬于同一個(gè)組,當(dāng)單擊其中之一時(shí),該按鈕一直保持按下(Down)狀態(tài),直到單擊了同一組的另一個(gè)按鈕為止。4.3 按鈕類組件4.3.4 TRadioButton組件組件TRadioButton單選按鈕組件位于組件面板的Standard選項(xiàng)卡上(如圖4-1所示),它為單選按鈕組件,可以在多個(gè)條件中選擇惟一的一個(gè)。通常在使用單選按鈕時(shí),總是將其進(jìn)行分組。在同一組中,只能同時(shí)選中一個(gè)按鈕,其余按鈕自動(dòng)取消選中。在實(shí)現(xiàn)單選按鈕的分組時(shí),可以有兩種方法:(1)利用分組框組件(TGroupBox)和單選按鈕組件(TRadioButton)來實(shí)現(xiàn)。首先向窗體中添加分組框,然后向分
26、組框中添加單選按鈕。這樣,同一個(gè)分組框中的單選按鈕就自動(dòng)成為一組。可以通過TRadioButton組件的Checked屬性來確定哪一個(gè)單選按鈕被選中。(2)利用單選按鈕分組框(TRadioGroup)實(shí)現(xiàn)??梢酝ㄟ^ItemIndex屬性來確定選中哪一個(gè)單選按鈕。4.3 按鈕類組件1用途用途 TRadioButton組件也稱為開關(guān)按鈕。單選按鈕為用戶提供了一組相互排斥的選項(xiàng)按鈕,無論何時(shí)選項(xiàng)組中最多只有一個(gè)選項(xiàng)被選擇。如果在選擇過程中又選擇了另一個(gè)按鈕,則先前被選擇的按鈕會(huì)自動(dòng)變成未選擇狀態(tài)。2主要屬性主要屬性 (1)Checked屬性:該屬性表示單選按鈕是否被選中。如果該屬性為true,則單選
27、按鈕的框中出現(xiàn)一個(gè)圓點(diǎn)表示選中;默認(rèn)值為false,表示未選中。 (2)Enabled屬性:該屬性用來控制單選按鈕是否處于激活狀態(tài)。默認(rèn)值為true,即為激活狀態(tài);當(dāng)該屬性為false時(shí),處于非激活狀態(tài),此時(shí)組件上顯示的字體為灰色,表示該按鈕不起作用。 (3)Visible屬性:該屬性決定該單選按鈕在窗體上是否可見。默認(rèn)值為true,即可見。4.3 按鈕類組件4.3.5 TCheckBox組件組件TCheckBox復(fù)選框組件位于組件面板的Standard選項(xiàng)卡上(如圖4-1所示),它為復(fù)選按鈕組件,可以組成多項(xiàng)選擇。1用途用途 TCheckBox組件稱為復(fù)選框,用戶可通過單擊一個(gè)選項(xiàng)來選擇或取
28、消選擇該選項(xiàng),在一個(gè)選擇組框中一次可做出多項(xiàng)選擇。4.3 按鈕類組件2主要屬性主要屬性 (1)Alignment屬性:該屬性用于設(shè)置復(fù)選按鈕上文字的位置。taRightJustify表示文字顯示在小方框的右邊;taLeftJustify表示文字顯示在小方框的左邊。 (2)AllowGrayed屬性:該屬性的默認(rèn)值為false,這時(shí)復(fù)選框只有兩種狀態(tài),即“選中”、“未選中”。但當(dāng)該屬性為true時(shí),復(fù)選框則有3種狀態(tài),即“選中”、“未選中”和“部分選中”灰色。 (3)State屬性:該屬性用來設(shè)置或返回復(fù)選框的狀態(tài),可取以下值: cbChecked:表示復(fù)選框處于啟用狀態(tài)。 cbUnchecke
29、d:表示復(fù)選框處于未啟用狀態(tài)。 cbGrayed:表示復(fù)選框處于啟用且變灰狀態(tài)。 (4)Checked屬性:該屬性用來檢測復(fù)選框當(dāng)前處于什么狀態(tài),為true表示選中,為false表示未選中。如果復(fù)選框的State屬性為cbGrayed或cbUnchecked,則Checked屬性為false。4.3 按鈕類組件【例4-2】在本書第3章例3-1的基礎(chǔ)上重新設(shè)計(jì)教師基本信息輸入窗體,設(shè)計(jì)窗體完成后的效果如圖4-8所示。此窗口中新添加了兩個(gè)標(biāo)簽組件、兩個(gè)單選按鈕組件、4個(gè)復(fù)選框組件。組件類型組件名屬性名屬性值標(biāo)簽(TLabel)Label6Caption性別Label7Caption喜愛閱讀哪類書籍
30、單選按鈕(TRadioButton)RadioButton1Caption男RadioButton2Caption女復(fù)選框(TCheckBox)CheckBox1Caption歷史類CheckBox2Caption文學(xué)類CheckBox3Caption哲學(xué)類CheckBox4Caption科學(xué)類4.4 列表類組件若需要多個(gè)選項(xiàng)時(shí),使用單選按鈕和復(fù)選框往往需要一個(gè)很大的窗體才能容納下,這時(shí)就可以使用列表類組件4.4 列表類組件4.4.1 TListBox組件組件TListBox列表框組件位于組件面板的Standard選項(xiàng)卡上(如圖4-1所示),在其中可以顯示一系列字符串,用戶可以選中其中的一個(gè)或
31、多個(gè)。1用途用途 TListBox組件用來顯示可滾動(dòng)的項(xiàng)目列表,在項(xiàng)目列表中可以選擇一個(gè)或多個(gè)項(xiàng)目,但不能直接對這些項(xiàng)目進(jìn)行修改。列表框中的項(xiàng)目列表是Items屬性的值,可對列表框中的項(xiàng)目進(jìn)行增加、刪除和插入操作。4.4 列表類組件2主要屬性主要屬性 (1)Columns屬性:該屬性用來決定列表框中項(xiàng)目的列數(shù),默認(rèn)值為0,表示列表框以單列顯示。 (2)ExtendedSelect屬性:該屬性決定是否允許使用Shift鍵和Ctrl鍵對列表框中的項(xiàng)目進(jìn)行多項(xiàng)選擇。只有當(dāng)該屬性為true時(shí),組件的MultiSelect屬性才生效,通過配合使用Shift鍵選擇連續(xù)多個(gè)項(xiàng)目,通過配合使用Ctrl鍵選擇不
32、連續(xù)的多個(gè)項(xiàng)目。如果將該屬性設(shè)置為false,那么MultiSelect屬性即便設(shè)置成true也無意義。 (3)IntegralHeight屬性:該屬性決定列表框在窗體上的顯示方式。設(shè)置為true時(shí),在垂直方向上可完整地看到列表框的項(xiàng)目;設(shè)置為false時(shí),列表框的高度由ItemHeight屬性決定。 (4)ItemHeight屬性:當(dāng)列表框的Style屬性設(shè)置為lbOwnerDrawFixed時(shí),列表框中的每一個(gè)項(xiàng)目的高度由ItemHeight屬性來決定;當(dāng)Style屬性為其他值時(shí),ItemHeight屬性無意義。 (5)ItemIndex屬性:該屬性返回列表框中的項(xiàng)目的索引號,從0開始,依
33、次增1。4.4 列表類組件 (6)Items屬性:該屬性用于設(shè)置列表框中顯示的內(nèi)容。當(dāng)按下Items屬性右邊的“”按鈕時(shí),將彈出StringListEditor窗口(串列表編輯器),用戶可在該編輯窗口中輸入將要在列表框中顯示的項(xiàng)目的默認(rèn)值。用戶也可在程序運(yùn)行過程中通過調(diào)用相應(yīng)方法動(dòng)態(tài)地向列表框中增加項(xiàng)目,如在窗體中有一個(gè)列表框組件ListBox1,則可通過代碼改變列表框的內(nèi)容,其方法如下: 向列表框中增加項(xiàng)目:ListBox1.Items.Add(增加的新項(xiàng)目) 刪除當(dāng)前選中的項(xiàng)目:ListBox1.Items.Delete(ListBox1.ItemIndex) 清除所有項(xiàng)目:ListBox
34、1.Clear (7)MultiSelect屬性:該屬性用來決定用戶是否可從列表框中一次選中多項(xiàng)。其值為true時(shí),用戶可選擇多項(xiàng)。4.4 列表類組件 (8)SelCount屬性:當(dāng)MultiSelect屬性設(shè)置為true時(shí),該屬性返回在列表框中用戶選中的項(xiàng)目的個(gè)數(shù)。 (9)Selected屬性:該屬性用來檢測在列表框中某一項(xiàng)是否被選擇,若該屬性為true,表示指定的項(xiàng)目被用戶選中。 (10)Sorted屬性:該屬性用來控制列表框中的數(shù)據(jù)是否自動(dòng)進(jìn)行排序。如果將其設(shè)置為true,那么列表框的數(shù)據(jù)按字母順序進(jìn)行排序;默認(rèn)值為false,即不對數(shù)據(jù)進(jìn)行排序。 (11)Style屬性:該屬性用來設(shè)置
35、列表框中項(xiàng)目的顯示方式。常取以下值: lbOwnerDrawFixed: 列表框中的每個(gè)項(xiàng)目可以是字符,也可以是圖像,其高度由ItemHeight屬性決定。 lbOwnerDrawVariable:列表框中的每個(gè)項(xiàng)目可以是字符或圖像,其高度可變。 lbStandard:默認(rèn)值,即列表框中的每個(gè)項(xiàng)目作為一個(gè)高度相同的字符串顯示。4.4 列表類組件【例4-3】在例4-2中的InputForm窗體中新添加1個(gè)標(biāo)簽和1個(gè)列表框,用來輸入籍貫,要求使用動(dòng)態(tài)方法向列表框中增加內(nèi)容。 添加如下代碼: procedure TInputForm.FormCreate(Sender:Tobject);begin
36、/輸入如下6行代碼 ListBox1.Items.Add(山西); /使用Add方法向列表框增加項(xiàng)目 ListBox1.Items.Add(北京); ListBox1.Items.Add(河北); ListBox1.Items.Add(河南); ListBox1.Items.Add(湖南); ListBox1.Items.Add(內(nèi)蒙古);end; 4.4 列表類組件4.4.2 TComboBox組件組件TComboBox組合框組件位于組件面板的Standard選項(xiàng)卡上(如圖4-1所示)。組合框由1個(gè)編輯框和1個(gè)下拉式列表框組成,可以從多個(gè)列表?xiàng)l目中選擇一個(gè)。1用途用途 TComboBox組件
37、是設(shè)計(jì)Windows應(yīng)用程序時(shí)使用較多的組件之一。該組件匯集了列表框和文本框的功能,其作用是供用戶從下拉列表中選擇數(shù)據(jù)或直接向組合框中輸入數(shù)據(jù)。組合框下拉列表的內(nèi)容是該組件的Items屬性值,Items屬性為字符串類型。4.4 列表類組件2主要屬性主要屬性 (1)DropDownCount屬性:該屬性用來設(shè)置組合框下拉列表中可顯示的文本行數(shù)。默認(rèn)值為8,即下拉列表在不需要滾動(dòng)的情況下可以顯示8個(gè)項(xiàng)目(8行文本)。 (2)Enabled屬性:該屬性決定是否使組合框處于激活狀態(tài)。如果將其設(shè)置為false,則組合框處于非激活狀態(tài),程序運(yùn)行時(shí)組合框區(qū)域呈灰色顯示。 (3)Style屬性:該屬性用來設(shè)置
38、組合框中項(xiàng)目的顯示方式。可取以下值:csDropDown:為默認(rèn)值,是由編輯框和列表框組合而成的組合框,列表框中的每一個(gè)項(xiàng)目都是高度相同的字符串。csDropDownList:只有列表框而沒有編輯框,每一個(gè)項(xiàng)目都是高度相同的字符串。csOwnerDrawFixed:和TListBox組件的lbOwnerDrawFixed方式相同。csOwnerDrawVariable:和TListBox組件的lbOwnerDrawVariable方式相同。csSimple:只有編輯框而沒有列表框。4.4 列表類組件 (4)Text屬性:該屬性用來設(shè)置或返回編輯框上顯示出來的文字內(nèi)容,也可在程序中對該屬性賦值。
39、該屬性的賦值語句為:.Text:= .Item索引號; (5)ItemIndex屬性:該屬性返回組合框中被選中項(xiàng)目的索引號,從0開始,依次加1。另外,用戶可通過Add、Delete和Insert方法對列表中的項(xiàng)目(Item)進(jìn)行增加、刪除和插入操作?!纠?-4】在本章例4-1的基礎(chǔ)上重新設(shè)計(jì)程序,增加一個(gè)顯示窗體InfoForm,用來顯示所輸入的教師的基本信息,(3)編寫代碼。InputForm窗體的事件處理程序代碼如下:implementationuses InfoForm; /引用窗體InfoForm所在單元$R *.dfm procedure TInputForm.FormCreate(
40、Sender: TObject);begin /輸入如下6行代碼 ListBox1.Items.Add(山西); /使用Add方法向列表框增加項(xiàng)目 ListBox1.Items.Add(北京); ListBox1.Items.Add(河北); ListBox1.Items.Add(河南); ListBox1.Items.Add(湖南); ListBox1.Items.Add(內(nèi)蒙古);end;4.4 列表類組件運(yùn)行程序4.4 列表類組件4.4.3 TTreeView組件組件 TTreeView組件位于組件面板的Win32選項(xiàng)卡上(如圖4-4所示),可以用來顯示具有樹型層次的數(shù)據(jù)。1用途用途 T
41、TreeView組件在一個(gè)層次列表中包含了文字、圖形和數(shù)據(jù)。它類似于Windows資源管理器左邊窗格中以樹的形式顯示磁盤或光盤上的目錄結(jié)構(gòu)。每一個(gè)節(jié)點(diǎn)(稱為父節(jié)點(diǎn))可包含其他節(jié)點(diǎn)(稱為子節(jié)點(diǎn)),父節(jié)點(diǎn)可以用展開或折疊的方式顯示。每一個(gè)節(jié)點(diǎn)是一個(gè)TTreeNode對象,整個(gè)列表也是一個(gè)TTreeNode對象,由Items屬性表示。4.4 列表類組件2主要屬性主要屬性 (1)AutoExpand屬性:該屬性為true時(shí),運(yùn)行時(shí)使選中的項(xiàng)展開,未選中的項(xiàng)折疊;若為false,單擊選中的項(xiàng)時(shí)并不展開,必須雙擊才能展開。 (2)Items屬性:該屬性相當(dāng)于一個(gè)元素類型為TTreeNode類型的數(shù)組,用來存放TTreeView組件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 哈爾濱醫(yī)科大學(xué)《書畫裝裱》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東工程職業(yè)技術(shù)學(xué)院《工程招投標(biāo)與概預(yù)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇航運(yùn)職業(yè)技術(shù)學(xué)院《中學(xué)語文教學(xué)設(shè)計(jì)與技能訓(xùn)練(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江司法警官職業(yè)學(xué)院《模擬電子技術(shù)課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東司法警官職業(yè)學(xué)院《數(shù)字特效合成》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津工藝美術(shù)職業(yè)學(xué)院《衛(wèi)生檢驗(yàn)綜合技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 東莞職業(yè)技術(shù)學(xué)院《計(jì)算機(jī)與操作系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢工程科技學(xué)院《外國文學(xué)名篇》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025三年級湘教版語文下學(xué)期期末知識點(diǎn)歸納復(fù)習(xí)周末練習(xí)單
- PROMIS-評分量表-使用版
- 勞務(wù)合同協(xié)議書書
- 白城2025年吉林大安市事業(yè)單位面向上半年應(yīng)征入伍高校畢業(yè)生招聘5人筆試歷年參考題庫附帶答案詳解
- 2025年市婦聯(lián)執(zhí)委會(huì)議上的工作報(bào)告
- 2025年菏澤醫(yī)學(xué)??茖W(xué)校高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 安全生產(chǎn)事故調(diào)查與案例分析(第3版)課件 呂淑然 第5、6章 事故案例評析、相關(guān)法律法規(guī)
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級下冊第二單元百分?jǐn)?shù)(二)(含答案)
- 2024年西安電力高等??茖W(xué)校高職單招職業(yè)技能測驗(yàn)歷年參考題庫(頻考版)含答案解析
- 2024年湖南鐵路科技職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 祖沖之的平生與貢獻(xiàn)
- 2025年版護(hù)理法律法規(guī)
- 房屋市政工程生產(chǎn)安全重大事故隱患排查表(2024版)
評論
0/150
提交評論