第4章常用組件_第1頁
第4章常用組件_第2頁
第4章常用組件_第3頁
第4章常用組件_第4頁
第4章常用組件_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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)用程序時將廣泛地使用到組件??梢暬M件庫(Visual Component Library,簡稱VCL)是Delphi中最重要的部分,通過VCL可以在窗體中方便地構(gòu)建供用戶交互的界面。本章將主要介紹Delphi常用組件的基本功能及主要屬性、方法等內(nèi)容。學(xué)習(xí)目標:了解組件的分類掌握文本輸入類常用組件的使用掌握按鈕類常用組件的使用掌握列表類常用組件的使用4.1 4.1 組件概述組件概述4.1.1 組件分類組件分類1可視化組件(可視化組件(V

2、isual Component) 可視化組件在程序運行期間用戶是可以看到的,也稱為組件(Control)。組件又有兩種不同的類型,即基于窗口的組件和基于圖形的組件?;诖翱诘慕M件(即窗口組件)是可以在運行時取得焦點的組件,能夠包含其他組件,擁有窗口句柄,如Edit組件。圖形組件沒有窗口句柄,不能取得輸入焦點,也不能包含其他組件,如Label組件。圖形組件在最小化使用系統(tǒng)資源方面起著關(guān)鍵作用,特別是在那些頻繁使用以及數(shù)量大的情況下最好使用圖形組件,如工具條按鈕。2非可視化組件(非可視化組件(Nonvisual Component) 非可視化組件是指在程序運行期間用戶看不到的組件,它們是從TCom

3、ponent但不是從TControl派生出來的子類。非可視化組件主要用來向其他組件或整個應(yīng)用程序提供某種服務(wù),在設(shè)計時無需考慮它們在窗體中的位置。非可視化組件一般以圖標形式顯示,最典型的一個非可視化組件是定時器組件(TTimer)。4.1 4.1 組件概述組件概述組件的常見基本屬性屬性含義Height高度Width寬度Left組件在容器中的x坐標Top組件在容器中的y坐標Align組件上的對齊方式:居上、居下、居左、居右、占據(jù)剩余Visible設(shè)置組件是否顯示,默認值為“true”Caption顯示組件的標題名稱Color顯示組件的背景顏色Font設(shè)置組件顯示文本的字體Ctl3D是否以3D方式

4、顯示組件,默認值為“true”ShowHint是否顯示組件的提示信息,默認值為“true”Hint組件的提示信息Enabled用戶是否能夠操作Name對組件進行標識的名稱TabOrderTab次序4.1 4.1 組件概述組件概述4.1.2 組件的常用屬性及事件組件的常用屬性及事件 在Delphi中,每一個組件都具有特定的屬性、事件和方法。組件的屬性是對組件特性的描述,包括組件的外觀特性(如位置、尺寸、外形、字體、可視性)和非可視化的特性,組件常見的基本屬性見表4-1。組件的事件是對組件所做的某個動作或系統(tǒng)的某些行為(如按下鼠標、雙擊鼠標、窗體裝入等)的反應(yīng)。每個組件都提供滿足用戶的各類事件處理

5、器,當發(fā)生特殊事件時,應(yīng)用程序?qū)?zhí)行事件處理器中的代碼。組件的常用事件及觸發(fā)條件見表4-2。組件的方法是指屬于該組件類或?qū)ο箢愋蛯嵗暮瘮?shù)或過程,每一類組件都有自己的方法,以實現(xiàn)各種功能。4.1 4.1 組件概述組件概述組件的常用事件及觸發(fā)條件事件名觸發(fā)條件OnClick當鼠標單擊時觸發(fā)本事件OnDblClick當鼠標雙擊時觸發(fā)本事件OnMouseDown當鼠標左鍵按下時觸發(fā)本事件OnMouseMove當鼠標移動時觸發(fā)本事件OnKeyDown當按下任意鍵(包括組合鍵)時觸發(fā)本事件OnKeyPress當按下任意鍵(單字符鍵)時觸發(fā)本事件OnKeyUp當松開已按下鍵時觸發(fā)本事件OnEnter當獲得

6、焦點時觸發(fā)本事件OnExit當失去焦點時觸發(fā)本事件OnStartDrag當開始拖動時觸發(fā)本事件OnDragDrop當組件拖動操作結(jié)束時觸發(fā)本事件4.2 文本輸入類組件在應(yīng)用程序的界面上,往往需要用戶輸入文本數(shù)據(jù),或者以一定的格式將文本顯示給用戶,這時可通過文本輸入類組件來實現(xiàn)。4.2 文本輸入類組件4.2.1 TLabel組件組件TLabel標簽組件位于組件面板的Standard選項卡上,如圖4-1所示,可以用來顯示一個只讀的字符串。通常利用TLabel標簽組件在窗體上顯示靜態(tài)文本,如顯示提示信息,也可顯示動態(tài)文本,如用TLabel顯示不斷變化的當前時間。1用途用途 TLabel組件主要用來標

7、識應(yīng)用程序中的其他對象,最常見的用法是把標簽放在其他組件的旁邊,如放在文本框、Memo框及單選按鈕等組件的左側(cè)或上方。標簽上的文字信息有助于用戶操作,也可為用戶提供信息。2主要屬性和方法主要屬性和方法 TLabel組件常用的屬性見前面的表4-1。下面介紹TLabel組件的主要屬性和方法。4.2 文本輸入類組件(1)A1ign屬性:該屬性決定TLabel組件的顯示位置(使其位于窗口的某個部分)(2)Alignment屬性:該屬性設(shè)置文字在水平方向的對齊方式,(3)AutoSize屬性:該屬性決定標簽的大小是否和文字保持一致,其默認值為false,即標簽的大小不隨文字的大小而變化。(4)Layou

8、t屬性:該屬性設(shè)置文字在垂直方向的對齊方式,(5)TransParent屬性:該屬性決定標簽是否透明顯示,主要在圖形操作時使用,如果將其設(shè)置為true,則可透過標簽看到背景圖。(6)WordWrap屬性:該屬性決定當AutoSize屬性為true時,文字超長時的顯示方式。該屬性為true時,則文字在縱向方向擴展,以多行顯示;為false時,則文字在橫向方向擴展,以完全容納文本內(nèi)容。4.2 文本輸入類組件4.2.2 TEdit組件組件TEdit文本框組件位于組件面板的Standard選項卡上,如圖4-1所示,可以顯示、編輯單獨的一行文本。1用途用途 TEdit組件提供了一個編輯區(qū)域,用戶可以在區(qū)

9、域中輸入單行信息。TEdit不但允許用戶在文本框中輸入數(shù)據(jù),也可以用來顯示查詢的數(shù)據(jù)及提示信息。4.2 文本輸入類組件2主要屬性和方法主要屬性和方法 (1)AutoSelect屬性:該屬性用來設(shè)置當TEdit組件獲得輸入焦點時,自動選中所有的文本。若它的值為true,則當TEdit組件獲得輸入焦點時,自動選中所有的文本;若它的值為false,則當TEdit組件獲得輸入焦點時,不自動選中所有的文本。 (2)AutoSize屬性:用于控制是否隨字體的高度來改變編輯框的高度。當AutoSize設(shè)置為true時,編輯框的高度會自動匹配輸入文字的字體高度。但要注意,該屬性只有當BorderStyle屬性

10、設(shè)置為bsSingle時才有效。 (3)CharCase屬性:該屬性用于強制組件中的文本全部為大寫(或小寫)字母。 (4)Enabled屬性:該屬性決定文本框中的內(nèi)容是否可以修改,其默認值為true,即文本框中的文本可以修改;當它的值為false時其中的文本不能修改。4.2 文本輸入類組件 (5)Hint屬性:該屬性用來設(shè)置所顯示的提示信息。例如通過將該屬性設(shè)置為“請輸入職工姓名”,并將ShowHint屬性設(shè)置為true,則在應(yīng)用程序運行時當用戶將鼠標移到文本框并停頓片刻后,將顯示引號中的提示信息。 (6)ImeMode屬性:如果要設(shè)置為中文輸入法,可以將ImeMode屬性設(shè)置為imChine

11、se。 (7)ImeName屬性:可以通過下拉組合框選擇一個具體的輸入法。 (8)PasswordChar屬性:將用戶輸入的所有字符以同一個字符顯示,其默認值是“#0”,表示編輯框直接顯示用戶輸入的字符;如果將其設(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)容拷貝到文本框中,并插入到文本框中光標所在的當前位置。 (14)SelectAll方法:該方法選擇文本框中的所有文本。Edit組件最常用的事件(也是默認事件)為OnChange,一旦Edit組件中的文本內(nèi)容發(fā)生了改變,就會觸發(fā)OnChang4.2 文本輸入類組件【例4-1】設(shè)計用

13、戶登錄驗證的窗體,用來接收用戶輸入的用戶名和口令,單擊“確定”按鈕進行驗證,根據(jù)輸入是否正確顯示相應(yīng)的提示信息。4.2 文本輸入類組件編寫DengLu窗體相應(yīng)的程序代碼。將組件添加到DengLu窗體后,編寫相應(yīng)的程序代碼。(*定義2個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選項卡

15、上,可以顯示、編輯多行文本。1用途用途 TMemo組件為用戶提供了一種處理多行文本的方法,還可用來快速閱讀文件中的數(shù)據(jù)。盡管TLabel、TEdit和TMemo組件有許多相似之處,但它們的使用場合卻有所不同。如果只顯示用戶不能修改的信息,可采用標簽;如果用戶只處理單行信息,則使用TEdit組件;如果用戶要處理多行文本,那么只能采用TMemo組件。4.2 文本輸入類組件 2主要屬性主要屬性 TMemo組件的很多屬性(如MaxLength、ReadOnly和Text等)和TEdit組件的屬性類似,相同屬性的含義不再贅述。以下是TMemo組件的特殊屬性。(1)Lines屬性:返回TMemo組件中文本

16、的行數(shù)。(2)ScrollBars屬性:該屬性用來設(shè)置TMemo組件是否含滾動條,(3)WantTabs屬性:該屬性用來設(shè)置是否可以使用Tab鍵來進行文本編輯。若其值設(shè)置為true,則可以用Tab鍵來使TMemo組件獲得輸入焦點,但不能用Tab鍵從TMemo組件切換到其他組件,默認值為false。4.2 文本輸入類組件4.2.4 TRichEdit組件組件TRichEdit組件和TMemo組件幾乎完全相同,但是TRichEdit組件中的文字可以有多種字體、多種顏色。TRichEdit組件位于組件面板的Win32選項卡上,如圖4-4所示。TRichEdit組件可以編輯多行文本,它比TMemo的功

17、能更強大,能夠?qū)ψ煮w格式化和段落格式化,也能插入OLE文檔,支持鼠標拖放,還可以搜索和打印。它是一個相當完美的編輯器,保存的文件格式為RTF。但是TRichEdit組件沒有提供完整的用戶界面,諸如打開、保存、打印、剪貼、拷貝、搜索等操作,需要通過編程,結(jié)合其他組件來完成。TRichEdit的主要屬性、事件和方法與TMemo基本相似,在功能上TRichEdit更加豐富4.3 按鈕類組件Delphi為用戶提供了3種按鈕組件,也是平時在Windows應(yīng)用程序中經(jīng)常用到的按鈕:普通按鈕(Tbutton)位圖按鈕(TBitBtn)加速按鈕(TSpeedButton)4.3 按鈕類組件4.3.1 TBut

18、ton組件組件 TButton命令按鈕組件位于組件面板的Standard選項卡上,如圖4-1所示。1用途用途 TButton組件是提供給用戶用來執(zhí)行命令的組件,通常稱為命令按鈕。按鈕在Windows程序中使用非常廣泛,它可以放在應(yīng)用程序的任何地方,觸發(fā)之后執(zhí)行特定的操作。4.3 按鈕類組件2主要屬性主要屬性 (1)Cancel屬性:該屬性決定按鈕是否為Cancel按鈕。當設(shè)置為true時為Cancel按鈕,即當用戶按Esc鍵時,將執(zhí)行按鈕的OnClick事件處理程序。當窗體中有多個Cancel按鈕時,則只調(diào)用TabOrder屬性最小的按鈕的OnClick事件。 (2)Caption屬性:該屬性

19、用來讓用戶識別組件,輸入屬性值顯示在組件表面。 (3)Default屬性:該屬性決定按鈕是否為默認按鈕。如果將其設(shè)置為true則按鈕為默認按鈕,此時當用戶按Enter鍵時,將執(zhí)行按鈕的OnClick事件處理程序。 (4)Enabled屬性:該屬性決定按鈕是否能對鼠標、鍵盤和計時器事件做出響應(yīng)。 (5)ModalResult屬性:該屬性確定按鈕的父窗體的關(guān)閉方式。 (6)Name屬性:該屬性是組件的名稱,與Caption不同,它不顯示在組件表面,而是在應(yīng)用程序代碼中作為組件的名稱標識4.3 按鈕類組件4.3.2 TBitBtn組件組件TBitBtn位圖按鈕組件位于組件面板的Additional選

20、項卡上,它為圖形按鈕組件。1用途用途 TBitBtn組件與其他按鈕一樣,在對話框和窗體中廣泛使用。該組件的作用和TButton組件相同,惟一的區(qū)別是可以在位圖按鈕上同時顯示文本信息和位圖。4.3 按鈕類組件2主要屬性主要屬性 (1)Glyph屬性:該屬性指定在用戶選擇的位圖按鈕表面顯示的圖形。單擊該屬性右邊的“”按鈕,彈出裝入位圖文件的Picture Editor對話框,如圖4-6所示,單擊此對話框中的Load按鈕選擇用戶需要的位圖,此時選擇的位圖將顯示在對話框中,再單擊OK按鈕后,位圖將顯示在按鈕上。 (2)Kind屬性:該屬性決定位圖按鈕的種類,包括bkAbort、bkAll、bkCanc

21、el、bkClose、bkCustom、bkHelp、bkIgnore、bkNo、bkOK、bkRetry、bkYes。 (3)Layout屬性:該屬性決定位圖在按鈕上的顯示位置,即位圖可以顯示在按鈕的左邊、右邊、上邊或下邊,包括:blGlyphBottom、blGlyphTop、blGlyphLeft、blGlyphRight。 (4)Margin屬性:該屬性確定位圖按鈕邊沿和位圖邊沿之間的距離,單位為像素。該屬性的默認值為-1,表示位圖和文字都在按鈕的中間顯示,但相互不重疊。4.3 按鈕類組件(5)NumGlyphs屬性:當用戶為位圖按鈕在Glyph屬性中指定多個圖像時,必須用該屬性指定按

22、鈕要顯示的圖像,它的值可以是14之一,默認值為1。(6)Spacing屬性:該屬性確定位圖按鈕上圖像和標題之間的間隔。該屬性值可以是負數(shù)、0和正數(shù),默認值為4。(7)Style屬性:該屬性決定位圖按鈕的外觀,共有3種可能的值:bsAutoDetect、bsWin31和bsNew,即位圖按鈕采用Windows哪一種版本的風(fēng)格。bsAutoDetect:表示當使用Windows 3.x時,位圖按鈕采用標準的Windows 3.x外觀,當使用Windows 3.x以后的版本時,位圖按鈕采用較新的外觀。bsWin31:表示不考慮所運行的Windows版本而采用標準的Windows 3.1外觀。bsNe

23、w:表示不考慮所運行的Windows版本而采用新的位圖按鈕外觀。4.3 按鈕類組件4.3.3 TSpeedButton組件組件TSpeedButton組件位于組件面板Additional選項卡上,如圖4-5所示,它為加速按鈕組件。1用途用途 TSpeedButton組件可以同時顯示圖形和文字,用法與位圖按鈕很相似。在按鈕上顯示圖像時,它的圖像必須是Windows的位圖文件(.bmp)。該組件常和TToolBar、TPanel等組件一起使用,用戶使用該組件可快速建立工具欄和工具面板。4.3 按鈕類組件2主要屬性主要屬性 (1)AllowAllUp屬性:該屬性決定同組中的加速按鈕是否可一個都不選擇

24、。如果將其設(shè)置為true,那么在同一組中的加速按鈕可一個都不選擇,但可以出現(xiàn);如果將其設(shè)置為false,則必須選擇同一組中的快速按鈕之一,即必須有一個加速按鈕處于被按下狀態(tài)。默認值為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屬性:該屬性決定哪些加速按鈕作為一組。默認值為0,表示該組件不屬于某個組。具有相同GroupI

25、ndex屬性值且不為0的加速按鈕屬于同一個組,當單擊其中之一時,該按鈕一直保持按下(Down)狀態(tài),直到單擊了同一組的另一個按鈕為止。4.3 按鈕類組件4.3.4 TRadioButton組件組件TRadioButton單選按鈕組件位于組件面板的Standard選項卡上(如圖4-1所示),它為單選按鈕組件,可以在多個條件中選擇惟一的一個。通常在使用單選按鈕時,總是將其進行分組。在同一組中,只能同時選中一個按鈕,其余按鈕自動取消選中。在實現(xiàn)單選按鈕的分組時,可以有兩種方法:(1)利用分組框組件(TGroupBox)和單選按鈕組件(TRadioButton)來實現(xiàn)。首先向窗體中添加分組框,然后向分

26、組框中添加單選按鈕。這樣,同一個分組框中的單選按鈕就自動成為一組??梢酝ㄟ^TRadioButton組件的Checked屬性來確定哪一個單選按鈕被選中。(2)利用單選按鈕分組框(TRadioGroup)實現(xiàn)。可以通過ItemIndex屬性來確定選中哪一個單選按鈕。4.3 按鈕類組件1用途用途 TRadioButton組件也稱為開關(guān)按鈕。單選按鈕為用戶提供了一組相互排斥的選項按鈕,無論何時選項組中最多只有一個選項被選擇。如果在選擇過程中又選擇了另一個按鈕,則先前被選擇的按鈕會自動變成未選擇狀態(tài)。2主要屬性主要屬性 (1)Checked屬性:該屬性表示單選按鈕是否被選中。如果該屬性為true,則單選

27、按鈕的框中出現(xiàn)一個圓點表示選中;默認值為false,表示未選中。 (2)Enabled屬性:該屬性用來控制單選按鈕是否處于激活狀態(tài)。默認值為true,即為激活狀態(tài);當該屬性為false時,處于非激活狀態(tài),此時組件上顯示的字體為灰色,表示該按鈕不起作用。 (3)Visible屬性:該屬性決定該單選按鈕在窗體上是否可見。默認值為true,即可見。4.3 按鈕類組件4.3.5 TCheckBox組件組件TCheckBox復(fù)選框組件位于組件面板的Standard選項卡上(如圖4-1所示),它為復(fù)選按鈕組件,可以組成多項選擇。1用途用途 TCheckBox組件稱為復(fù)選框,用戶可通過單擊一個選項來選擇或取

28、消選擇該選項,在一個選擇組框中一次可做出多項選擇。4.3 按鈕類組件2主要屬性主要屬性 (1)Alignment屬性:該屬性用于設(shè)置復(fù)選按鈕上文字的位置。taRightJustify表示文字顯示在小方框的右邊;taLeftJustify表示文字顯示在小方框的左邊。 (2)AllowGrayed屬性:該屬性的默認值為false,這時復(fù)選框只有兩種狀態(tài),即“選中”、“未選中”。但當該屬性為true時,復(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ù)選框當前處于什么狀態(tài),為true表示選中,為false表示未選中。如果復(fù)選框的State屬性為cbGrayed或cbUnchecked,則Checked屬性為false。4.3 按鈕類組件【例4-2】在本書第3章例3-1的基礎(chǔ)上重新設(shè)計教師基本信息輸入窗體,設(shè)計窗體完成后的效果如圖4-8所示。此窗口中新添加了兩個標簽組件、兩個單選按鈕組件、4個復(fù)選框組件。組件類型組件名屬性名屬性值標簽(TLabel)Label6Caption性別Label7Caption喜愛閱讀哪類書籍

30、單選按鈕(TRadioButton)RadioButton1Caption男RadioButton2Caption女復(fù)選框(TCheckBox)CheckBox1Caption歷史類CheckBox2Caption文學(xué)類CheckBox3Caption哲學(xué)類CheckBox4Caption科學(xué)類4.4 列表類組件若需要多個選項時,使用單選按鈕和復(fù)選框往往需要一個很大的窗體才能容納下,這時就可以使用列表類組件4.4 列表類組件4.4.1 TListBox組件組件TListBox列表框組件位于組件面板的Standard選項卡上(如圖4-1所示),在其中可以顯示一系列字符串,用戶可以選中其中的一個或

31、多個。1用途用途 TListBox組件用來顯示可滾動的項目列表,在項目列表中可以選擇一個或多個項目,但不能直接對這些項目進行修改。列表框中的項目列表是Items屬性的值,可對列表框中的項目進行增加、刪除和插入操作。4.4 列表類組件2主要屬性主要屬性 (1)Columns屬性:該屬性用來決定列表框中項目的列數(shù),默認值為0,表示列表框以單列顯示。 (2)ExtendedSelect屬性:該屬性決定是否允許使用Shift鍵和Ctrl鍵對列表框中的項目進行多項選擇。只有當該屬性為true時,組件的MultiSelect屬性才生效,通過配合使用Shift鍵選擇連續(xù)多個項目,通過配合使用Ctrl鍵選擇不

32、連續(xù)的多個項目。如果將該屬性設(shè)置為false,那么MultiSelect屬性即便設(shè)置成true也無意義。 (3)IntegralHeight屬性:該屬性決定列表框在窗體上的顯示方式。設(shè)置為true時,在垂直方向上可完整地看到列表框的項目;設(shè)置為false時,列表框的高度由ItemHeight屬性決定。 (4)ItemHeight屬性:當列表框的Style屬性設(shè)置為lbOwnerDrawFixed時,列表框中的每一個項目的高度由ItemHeight屬性來決定;當Style屬性為其他值時,ItemHeight屬性無意義。 (5)ItemIndex屬性:該屬性返回列表框中的項目的索引號,從0開始,依

33、次增1。4.4 列表類組件 (6)Items屬性:該屬性用于設(shè)置列表框中顯示的內(nèi)容。當按下Items屬性右邊的“”按鈕時,將彈出StringListEditor窗口(串列表編輯器),用戶可在該編輯窗口中輸入將要在列表框中顯示的項目的默認值。用戶也可在程序運行過程中通過調(diào)用相應(yīng)方法動態(tài)地向列表框中增加項目,如在窗體中有一個列表框組件ListBox1,則可通過代碼改變列表框的內(nèi)容,其方法如下: 向列表框中增加項目:ListBox1.Items.Add(增加的新項目) 刪除當前選中的項目:ListBox1.Items.Delete(ListBox1.ItemIndex) 清除所有項目:ListBox

34、1.Clear (7)MultiSelect屬性:該屬性用來決定用戶是否可從列表框中一次選中多項。其值為true時,用戶可選擇多項。4.4 列表類組件 (8)SelCount屬性:當MultiSelect屬性設(shè)置為true時,該屬性返回在列表框中用戶選中的項目的個數(shù)。 (9)Selected屬性:該屬性用來檢測在列表框中某一項是否被選擇,若該屬性為true,表示指定的項目被用戶選中。 (10)Sorted屬性:該屬性用來控制列表框中的數(shù)據(jù)是否自動進行排序。如果將其設(shè)置為true,那么列表框的數(shù)據(jù)按字母順序進行排序;默認值為false,即不對數(shù)據(jù)進行排序。 (11)Style屬性:該屬性用來設(shè)置

35、列表框中項目的顯示方式。常取以下值: lbOwnerDrawFixed: 列表框中的每個項目可以是字符,也可以是圖像,其高度由ItemHeight屬性決定。 lbOwnerDrawVariable:列表框中的每個項目可以是字符或圖像,其高度可變。 lbStandard:默認值,即列表框中的每個項目作為一個高度相同的字符串顯示。4.4 列表類組件【例4-3】在例4-2中的InputForm窗體中新添加1個標簽和1個列表框,用來輸入籍貫,要求使用動態(tài)方法向列表框中增加內(nèi)容。 添加如下代碼: procedure TInputForm.FormCreate(Sender:Tobject);begin

36、/輸入如下6行代碼 ListBox1.Items.Add(山西); /使用Add方法向列表框增加項目 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選項卡上(如圖4-1所示)。組合框由1個編輯框和1個下拉式列表框組成,可以從多個列表條目中選擇一個。1用途用途 TComboBox組件

37、是設(shè)計Windows應(yīng)用程序時使用較多的組件之一。該組件匯集了列表框和文本框的功能,其作用是供用戶從下拉列表中選擇數(shù)據(jù)或直接向組合框中輸入數(shù)據(jù)。組合框下拉列表的內(nèi)容是該組件的Items屬性值,Items屬性為字符串類型。4.4 列表類組件2主要屬性主要屬性 (1)DropDownCount屬性:該屬性用來設(shè)置組合框下拉列表中可顯示的文本行數(shù)。默認值為8,即下拉列表在不需要滾動的情況下可以顯示8個項目(8行文本)。 (2)Enabled屬性:該屬性決定是否使組合框處于激活狀態(tài)。如果將其設(shè)置為false,則組合框處于非激活狀態(tài),程序運行時組合框區(qū)域呈灰色顯示。 (3)Style屬性:該屬性用來設(shè)置

38、組合框中項目的顯示方式??扇∫韵轮担篶sDropDown:為默認值,是由編輯框和列表框組合而成的組合框,列表框中的每一個項目都是高度相同的字符串。csDropDownList:只有列表框而沒有編輯框,每一個項目都是高度相同的字符串。csOwnerDrawFixed:和TListBox組件的lbOwnerDrawFixed方式相同。csOwnerDrawVariable:和TListBox組件的lbOwnerDrawVariable方式相同。csSimple:只有編輯框而沒有列表框。4.4 列表類組件 (4)Text屬性:該屬性用來設(shè)置或返回編輯框上顯示出來的文字內(nèi)容,也可在程序中對該屬性賦值。

39、該屬性的賦值語句為:.Text:= .Item索引號; (5)ItemIndex屬性:該屬性返回組合框中被選中項目的索引號,從0開始,依次加1。另外,用戶可通過Add、Delete和Insert方法對列表中的項目(Item)進行增加、刪除和插入操作。【例4-4】在本章例4-1的基礎(chǔ)上重新設(shè)計程序,增加一個顯示窗體InfoForm,用來顯示所輸入的教師的基本信息,(3)編寫代碼。InputForm窗體的事件處理程序代碼如下:implementationuses InfoForm; /引用窗體InfoForm所在單元$R *.dfm procedure TInputForm.FormCreate(

40、Sender: TObject);begin /輸入如下6行代碼 ListBox1.Items.Add(山西); /使用Add方法向列表框增加項目 ListBox1.Items.Add(北京); ListBox1.Items.Add(河北); ListBox1.Items.Add(河南); ListBox1.Items.Add(湖南); ListBox1.Items.Add(內(nèi)蒙古);end;4.4 列表類組件運行程序4.4 列表類組件4.4.3 TTreeView組件組件 TTreeView組件位于組件面板的Win32選項卡上(如圖4-4所示),可以用來顯示具有樹型層次的數(shù)據(jù)。1用途用途 T

41、TreeView組件在一個層次列表中包含了文字、圖形和數(shù)據(jù)。它類似于Windows資源管理器左邊窗格中以樹的形式顯示磁盤或光盤上的目錄結(jié)構(gòu)。每一個節(jié)點(稱為父節(jié)點)可包含其他節(jié)點(稱為子節(jié)點),父節(jié)點可以用展開或折疊的方式顯示。每一個節(jié)點是一個TTreeNode對象,整個列表也是一個TTreeNode對象,由Items屬性表示。4.4 列表類組件2主要屬性主要屬性 (1)AutoExpand屬性:該屬性為true時,運行時使選中的項展開,未選中的項折疊;若為false,單擊選中的項時并不展開,必須雙擊才能展開。 (2)Items屬性:該屬性相當于一個元素類型為TTreeNode類型的數(shù)組,用來存放TTreeView組件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論