delhi第一三九十可視化編程講稿_第1頁(yè)
delhi第一三九十可視化編程講稿_第2頁(yè)
delhi第一三九十可視化編程講稿_第3頁(yè)
delhi第一三九十可視化編程講稿_第4頁(yè)
delhi第一三九十可視化編程講稿_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章Delphi的窗體與組件教學(xué)要求:掌握窗體、編輯類組件、按鈕類控件、列表類控件、分組類組件、時(shí)鐘組件、菜單組件、工具欄組件和工具按鈕、多選項(xiàng)卡的的屬性、方法與事件,學(xué)會(huì)使用這些組件設(shè)計(jì)應(yīng)用程序的界面。掌握ShowMessage、ShowMessageFmt、MassageDlg、MassageDlgPos、InputBox、InputQuery對(duì)話框函數(shù)與對(duì)話框過(guò)程的特點(diǎn),并能熟練應(yīng)用。熟悉公共對(duì)話框控件組件的屬性,方法、事件及應(yīng)用。掌握創(chuàng)建新窗體的兩種不同的方法及其應(yīng)用。掌握windows的模式與非模式窗體的概念及應(yīng)用方法。掌握焦點(diǎn)的含義,與焦點(diǎn)相關(guān)的屬性,應(yīng)用焦點(diǎn)設(shè)計(jì)程序的方法。了解CreateMessageDialog函數(shù)的定義與用法、speedbutton和文件有關(guān)的控件的屬性、方法與事件。從本章開始,將介紹Delphi編程的一些基本方法。通過(guò)這一部分的學(xué)習(xí),可以了解開發(fā)Windows環(huán)境下應(yīng)用程序的一些關(guān)鍵技術(shù),并可以方便、快捷地開發(fā)一般的應(yīng)用程序。為了簡(jiǎn)化編程工作,Delphi提供了許多功能強(qiáng)大的函數(shù)和類。其中很重要的一部分就是組件關(guān)。本章將重點(diǎn)介紹常見組件及其編程應(yīng)用?,F(xiàn)在深入普及的Windows操作系統(tǒng)中,方便快捷的人機(jī)交互界面主要是通過(guò)窗體和對(duì)話框?qū)崿F(xiàn)的。在Delphi中,這些窗體和對(duì)話框就是程序設(shè)計(jì)階段的窗體,Delphi的可視化設(shè)計(jì)工作就是在窗體中進(jìn)行的。通常,窗體中會(huì)有文字輸入、滾動(dòng)條、復(fù)選框、單選框、按鈕等一系列組件,通過(guò)這些直觀易懂的組件,可以方便的實(shí)現(xiàn)多種多樣的功能。在Delphi中,這些運(yùn)行期間出現(xiàn)在窗體和對(duì)話框中的組件稱為可視組件。在窗體中,還可以放置一些運(yùn)行期間非可視的組件,對(duì)應(yīng)其它的TComponent子類。這些不可視組件集中地實(shí)現(xiàn)了一些特殊的功能。比如,時(shí)鐘控制等功能。TComponent組件類,所有的組件都是由這個(gè)類派生來(lái)的。TControl子類(可視組件)可分為兩類:窗體組件和圖形組件。窗體組件對(duì)應(yīng)TWinControl子類,是基于系統(tǒng)窗體的可視組件,具有窗體句柄,可作為輸入焦點(diǎn)或含有其它組件,例如TEdit組件、TPanel組件。圖形組件對(duì)應(yīng)TGraphicControl子類,沒(méi)有窗體句柄,不可作為輸入焦點(diǎn),也不能含有其它組件,例如Label組件。圖形組件比窗體組件使用的資源少,尤其在組件數(shù)量比較多的情況下最好使用圖形組件。組件組的關(guān)系如圖所示。窗體和組件的關(guān)系非常密切。窗體就像一個(gè)容器,其中包容了可視組件和非可視組件。窗體和組件之間除了具有上述的不同點(diǎn)之外,還具有一些相同點(diǎn)。例如,從面向?qū)ο缶幊痰慕嵌葋?lái)看,所有組件都是TComponent類派生類的一個(gè)對(duì)象。窗體類(TForm)也是從TComponent類派生的,所以可以將窗體看成一個(gè)特殊的組件。有些組件也具有窗體的“容器”屬性,也就是在這些組件中可以放置其它組件,通常這些組件稱為容器組件。例如Tpanel組件就是一個(gè)容器組件,可以在Tpanel組件中放置其他組件。Delphi中的所有組件是在可視組件庫(kù)(VisualComponentLibrary,縮寫為VCL)中封裝的。可視組件庫(kù)是Delphi中非常重要的一部分,不僅封裝了所有組件對(duì)應(yīng)的類,還封裝了一些通用的類。所有的這些類都是由一個(gè)基類派生出來(lái)的,也就是TObject類。了解可視組件庫(kù)對(duì)于學(xué)習(xí)組件、使用Delphi很有幫助。Delphi中的主要組件欄Standard 標(biāo)準(zhǔn)Windows組件、框架、菜單等Additional 一些專用的Windows組件

Win3232位Windows系統(tǒng)中的公用組件System進(jìn)行系統(tǒng)操作的組件(包括定時(shí)器、多媒體和DDE等)DataAccess操作數(shù)據(jù)庫(kù)的組件,如訪問(wèn)數(shù)據(jù)庫(kù)、表格、查詢和報(bào)表等DataControls進(jìn)行數(shù)據(jù)庫(kù)控制的組件BDEBORLAND訪問(wèn)數(shù)據(jù)庫(kù)的組件ADO通過(guò)ActiveXDataObjects訪問(wèn)數(shù)據(jù)庫(kù)的組件InterBase提供與InterBase直接聯(lián)接的組件MIDAS開發(fā)多層數(shù)據(jù)庫(kù)應(yīng)用程序的組件InternetExpre開發(fā)InternetExpress應(yīng)用程序(Web服務(wù)器應(yīng)用程序和客戶端ss多層數(shù)據(jù)庫(kù)應(yīng)用程序)的組件Internet開發(fā)Web服務(wù)的應(yīng)用程序FastNet提供Internet操作的一些組件DecisionCube為應(yīng)用程序提供多維數(shù)據(jù)分析的組件DialogsWindows通用對(duì)話框組件Win提供與Windows兼容的一些組件

Samples一些定制組件的例子Servers通用COM服務(wù)器組件DELPHI組件常見屬性及說(shuō)明屬性說(shuō)明Align設(shè)置組件對(duì)齊(相對(duì)于其父容器)Borderstyle設(shè)置組件邊框形狀Caption設(shè)置組件標(biāo)題Ctl3d設(shè)置組件邊框是否為3D模式,若BORDERSTYLE設(shè)置為BSNONE則此屬性無(wú)效Color設(shè)定組件背景顏色Cursor設(shè)定鼠標(biāo)經(jīng)過(guò)組件時(shí)光標(biāo)所顯示的形狀Enabled設(shè)定組件是否能使用,當(dāng)設(shè)為FALSE時(shí)組件會(huì)呈灰色Font設(shè)定組件內(nèi)文字的字型、字體大小、顏色等Height設(shè)定組件高度Helpcontent用來(lái)為幫助說(shuō)明文件中的索引值建立關(guān)聯(lián)

Left設(shè)定組件與父組件左邊框間的距離Popupmenu設(shè)定鼠標(biāo)右鍵(彈出式)快捷菜單Taborder設(shè)定組件在按下TAB鍵后焦點(diǎn)(FOCUS)移動(dòng)的順序Tabstop若設(shè)為FALSE,則按TAB鍵后焦點(diǎn)并不會(huì)在此組件上停留Top設(shè)定組件與父組件上邊框間的距離Visible設(shè)定組件是否可見,此屬性只在執(zhí)行時(shí)起作用Width設(shè)定組件顯示寬度DELPHI常見事件及說(shuō)明事件說(shuō)明Onchange當(dāng)組件有所改變時(shí)觸發(fā)的事件Onclick當(dāng)在此組件上按下鼠標(biāo)左鍵時(shí)觸發(fā)的事件Ondblclick當(dāng)在此組件上雙擊鼠標(biāo)左鍵時(shí)觸發(fā)的事件Onenter當(dāng)焦點(diǎn)進(jìn)入此組件時(shí)觸發(fā)的事件Onexit當(dāng)切換到其它組件使該組件失去焦點(diǎn)時(shí)觸發(fā)的事件,但當(dāng)切換到另一窗體或另一應(yīng)用程序時(shí)此事件不會(huì)觸發(fā)

Onkeydown當(dāng)在擁有焦點(diǎn)的組件上按下某個(gè)鍵時(shí)觸發(fā)的事件,按鍵包括所有的英文、數(shù)字鍵、方向鍵、功能鍵等Onkeypress當(dāng)在擁有焦點(diǎn)的組件上按下某個(gè)鍵時(shí)觸發(fā)的事件,但按鍵只包括所有的英文、數(shù)字鍵、TAB、BACKSPACE、ENTER、ESCOnkeyup當(dāng)使用者放開鍵盤上的按鍵時(shí)觸發(fā)的事件,按鍵看ONKEYDOWNOnmousedown當(dāng)鼠標(biāo)鍵在某個(gè)組件按下時(shí)觸發(fā)的事件(其參數(shù)包括哪個(gè)鼠標(biāo)鍵被按下、是否有特殊鍵(CTRL、ALT、SHIFT)被按下以及鼠標(biāo)當(dāng)前的坐標(biāo))Onmousemove當(dāng)鼠標(biāo)在組件內(nèi)移動(dòng)時(shí)觸發(fā)的事件Onmouseup當(dāng)鼠標(biāo)鍵在組件上方放開時(shí)所觸發(fā)的事件Onpaint在組件需要被重畫時(shí)觸發(fā)的事件,此時(shí)可進(jìn)行自定義畫法窗體介紹窗體是編寫Delphi程序的工作底稿區(qū),凡是與用戶進(jìn)行交互的程序都得使用窗體來(lái)設(shè)計(jì)用戶界面。在程序運(yùn)行時(shí),窗體實(shí)際上就是標(biāo)準(zhǔn)的應(yīng)用程序主窗口、對(duì)話框及多文檔界面的主窗口根據(jù)不同的窗體類型,Windows環(huán)境中的應(yīng)用程序可以分為下面的三類:?jiǎn)挝臋n界面(SDI)應(yīng)用程序:這種應(yīng)用程序同時(shí)只能打開一個(gè)文檔。例如

Windows系統(tǒng)附件中的“畫圖”程序,只能同時(shí)編輯一個(gè)圖像文件。多文檔界面(MDI)應(yīng)用程序:一般這種應(yīng)用程序具有一個(gè)父窗體和多個(gè)子窗體,可以同時(shí)打開多個(gè)文檔,分別在多個(gè)子窗體中顯示。例如常用的word軟件,可以同時(shí)編輯多個(gè)文檔。對(duì)話框應(yīng)用程序:這種應(yīng)用程序的主界面基于一個(gè)對(duì)話框類型的窗體。例如Windows系統(tǒng)附件中的“磁盤掃描”程序。此外,有些應(yīng)用程序在運(yùn)行期間可以總是顯示在桌面的最前端,例如在Windows中按下系統(tǒng)熱鍵Ctrl+Alt+Del,激活的關(guān)閉程序窗體會(huì)一直顯示在其它應(yīng)用程序的窗體之上,除非退出該程序。窗體由標(biāo)題欄、工作區(qū)和邊界組成。窗體的屬性窗體的屬性是與其外觀密切相關(guān)的。對(duì)于組件的屬性除必要進(jìn)行設(shè)定的外,一般使用它的默認(rèn)值。1.窗體的位置與大小窗體的位置與大小是由屬性Left、Top、Width、Height、ClientWidth、ClientHeight、Position、Align來(lái)確定的。一般來(lái)說(shuō)前四個(gè)屬性可以定義控件在它們所在的容器組件中的物理位置和大小,在Delphi中的可見組件都有這四個(gè)屬性,而不可見組件沒(méi)有這些屬性。Heigth屬性和Width屬性分別指定窗體的高度和窗體的寬度窗體的左上角相對(duì)于父容器(屏幕)的坐標(biāo):Top屬性和Left屬性Align屬性用來(lái)設(shè)定窗體相對(duì)與父容器(屏幕)的對(duì)齊方式,該屬性為枚舉類型,取值如下取值含義alBotton窗體位于屏幕的下方,寬度為整個(gè)屏幕寬(Width屬性失效),高度為Heigth屬性值alClient窗體占據(jù)屏幕的中部,Width與Height屬性失效alLeft窗體位于屏幕的左方,寬度為Width屬性值,咼度為整個(gè)屏幕(Heigth屬性失效)alNoneWidth與Height屬性有效,以及其他屬性有效alRight窗體位于屏幕的右方,寬度為Width屬性值,咼度為整個(gè)屏幕(Heigth屬性失效)alTop窗體位于屏幕的上方,寬度為整個(gè)屏幕寬(Width屬性失效),高度為Heigth屬性值Position屬性:在應(yīng)用程序運(yùn)行階段,確定窗口在屏幕上的位置。只有當(dāng)Align屬性為alNone時(shí)才有效,屬性為枚舉類型,取值如下:取值含義

poDesigned窗體運(yùn)行時(shí)顯示的位置和大小與設(shè)計(jì)相同poDefault窗體每次顯示時(shí),與上次比較,往右下角移動(dòng)了一些位置;窗體的高度和寬度由Windows決定poDefaultPosOnly窗體以設(shè)計(jì)期間的大小顯示,窗體顯示的位置較上次向右下角移動(dòng)了一些。如果窗體以設(shè)計(jì)時(shí)的大小不可以在屏幕上完全顯示,就移動(dòng)到屏幕的左上角顯示。poDefaultSizeOnly窗體以設(shè)計(jì)期間的位置顯示,窗體的大小由Windows決定poScreenCenter窗口尺寸由窗體的Height和Width屬性參數(shù)確定,但是窗口位于屏幕的中央poDesktopCenter窗體以設(shè)計(jì)期間的大小顯示;窗體顯示的位置總在屏幕的中間。2.窗體的名稱與標(biāo)題Caption屬性確定了窗體的標(biāo)題,當(dāng)窗體最小化后,Caption屬性值為圖標(biāo)的文本說(shuō)明。通常,對(duì)于多文檔界面(MDI)應(yīng)用程序,當(dāng)主框架窗體中的子窗體最大化顯示的時(shí)候,應(yīng)用程序的標(biāo)題欄中顯示的內(nèi)容為“〈應(yīng)用程序名〉-〈打開的文檔名〉”;當(dāng)子窗體非最大化窗體顯示的時(shí)候,主框架窗體中只顯示應(yīng)用程序的名稱,子窗體有自己的標(biāo)題欄,其中顯示該窗體打開的文件名。所以,當(dāng)窗體的顯示方式發(fā)生了改變后,應(yīng)該立即改變標(biāo)題欄中的內(nèi)容。默認(rèn)情況下Name屬性與Caption屬性值相同,但不能混淆兩者的作用。Name屬性是窗體對(duì)象的變量名,當(dāng)工程中有多個(gè)窗體時(shí),每個(gè)窗體的名稱必須是唯一的,即其名稱不能相同。屬性Name用來(lái)標(biāo)志工程中的窗體。通常,應(yīng)該在系統(tǒng)開發(fā)的設(shè)計(jì)階段就將整個(gè)工程中所有窗體的名稱確定,然后在編程階段根據(jù)設(shè)計(jì)文檔修改窗體的Name屬性。不能在程序運(yùn)行期間通過(guò)代碼修改Name屬性。3.窗體的外觀與風(fēng)格與窗體的外觀與樣式有關(guān)的屬性有:Bordericons、BorderStyle、FormStyle、WindowStyle、HorzScrollBar和VertScrollBar屬性等。FormStyle屬性可以分別實(shí)現(xiàn)各種類型的應(yīng)用程序,取值如下:取值含義FsNormal普通的窗體fsMDIChildMDI(多文檔窗體)的子窗體fsMDIFormMDI(多文檔窗體)的主窗體fsStayOnTop位于桌面頂層的窗體Bordericons屬性用來(lái)指定窗體標(biāo)題欄上的圖標(biāo),該屬性為集合類型,取值如下:

取值含義biSystemMenu在窗體的標(biāo)題欄中顯示系統(tǒng)菜單biMinimize在窗體的標(biāo)題欄中顯示最小化按鈕biMaximize在窗體的標(biāo)題欄中顯示最大化按鈕biHelp在窗體的標(biāo)題欄中顯小幫助按鈕,只有窗體的BorderStyle屬性設(shè)置為bsDialog或者窗體屬性BorderIcons中不包括biMinimize和biMaximize時(shí),biHelp設(shè)置才有效。確定窗體的邊界類型:BorderStyle屬性,該屬性為枚舉類型,取值如下取值含義bsDialog標(biāo)準(zhǔn)對(duì)話框邊框,邊框大小不可以改變。bsSingle單線框,大小不可以改變bsNone窗體沒(méi)有邊框,也沒(méi)有標(biāo)題欄,邊界的大小不可以改變,邊框不能移動(dòng)。bsSizeable邊框可移動(dòng)大小可變的標(biāo)準(zhǔn)窗體bsToolWindo風(fēng)格與bsSingle相同,只是標(biāo)題欄比較小。另外,對(duì)于這種當(dāng)創(chuàng)建窗體時(shí),就產(chǎn)生當(dāng)創(chuàng)建窗體時(shí),就產(chǎn)生Create事件;w風(fēng)格的窗體,屬性Bordericons中設(shè)置的biMinimize和biMaximize并不起作用。bsSizeToolWin風(fēng)格與bsSizeable相同,只是標(biāo)題欄比較小。對(duì)于這種風(fēng)格的窗體,屬性Bordericons中設(shè)置的biMinimize和biMaximze也不起作用。注意:窗體屬性Bordericons的設(shè)置與屬性BorderStyle的設(shè)置可能會(huì)發(fā)生互斥,例如屬性BorderIcons的biMinimize和biMaximize會(huì)與屬性BorderStyle的bsDialog沖突,屬性BorderIcons的biHelp會(huì)與屬性BorderStyle的bsSizeable沖突。設(shè)置窗體的顯示狀態(tài):WindowStyle屬性,該屬性為枚舉類型,取值如下取值含義wsNormal窗體運(yùn)行時(shí)顯示的位置和大小與設(shè)計(jì)相同wsMinimal窗體運(yùn)行時(shí),最小化wsMaximized窗體運(yùn)行時(shí),最大化4.Font屬性屬性Font用來(lái)設(shè)置窗體中文字的字體、顏色和字號(hào)等,包含Color、Name、Size或Style等屬性。如果將窗體中組件的屬性ParentFont設(shè)置為True,那么該組件的字體設(shè)置就與其父級(jí)窗體的字體設(shè)置完全一樣了。在程序設(shè)計(jì)的時(shí)候,為了保持整個(gè)系統(tǒng)風(fēng)格的統(tǒng)一,應(yīng)該使工程中的窗體風(fēng)格盡量一致,可以先設(shè)置窗體的Font屬性,然后將窗體中所有組件的ParentFont屬性設(shè)置為True就可以了。一般不要單個(gè)地對(duì)窗體中的組件進(jìn)行Font屬性的設(shè)置。5.Icon屬性屬性Icon用來(lái)指定標(biāo)題欄中顯示的圖標(biāo)。單擊對(duì)象編輯器Icon屬性右邊的省略號(hào)按鈕,在彈出的PictureEditor對(duì)話框中點(diǎn)擊Load...按鈕,就可以裝入一個(gè)制作好的圖標(biāo)。使用Delphi自帶的工具ImageEditor可以方便地制作圖標(biāo)。通過(guò)菜單Tools/ImageEditor可運(yùn)行ImageEditor編輯制作圖標(biāo)。如果需要?jiǎng)討B(tài)地改變窗體Forml中的圖標(biāo),可以調(diào)用下面的過(guò)程:其中是要在窗體Forml標(biāo)題欄中顯示的圖標(biāo)文件名。窗體的事件窗體的事件很多,常用事件:Create事件和Destroy事件當(dāng)釋放窗體所占用的空間時(shí),就會(huì)產(chǎn)生Destroy事件。這兩個(gè)事件過(guò)程的基本語(yǔ)法形式為:procedure(Sender:TObject);procedure(Sender:TObject);應(yīng)用:通常整個(gè)程序的初始化工作放在主窗體的Create事件中進(jìn)行處理,比如讀入將要用到的圖形資源等,而這些資源的釋放則放在主窗體的Destroy事件中進(jìn)行處理。例如:procedure(Sender:TObject);begin:二'歡迎使用!’;:二clred;隸書’;:='請(qǐng)按鍵’;:=130;:=500;:=50;:=100;end;當(dāng)創(chuàng)建窗體并顯示時(shí),下列事件按順序出現(xiàn):Create、Show、Paint、Activate。參見表1-14Show和Hide事件Show事件和Hide事件分別在窗體顯示與隱藏時(shí)被觸發(fā)。當(dāng)窗體的Visible屬性設(shè)置為True時(shí),窗體被顯示,同時(shí)觸發(fā)Show事件;當(dāng)窗體的Visible屬性設(shè)置為False時(shí),窗體被隱藏,同時(shí)觸發(fā)Hide事件。這兩個(gè)事件過(guò)程的基本語(yǔ)法形式為:procedure(Sender:TObject);procedure(Sender:TObject);Activate和Deactivate事件事件發(fā)生的條件:當(dāng)激活窗體時(shí),就產(chǎn)生Activate事件;當(dāng)窗體不再激活時(shí),就會(huì)產(chǎn)生Deactivate事件。這兩個(gè)事件過(guò)程的基本語(yǔ)法形式為:procedure(Sender:TObject);procedure(Sender:TObject);關(guān)閉窗體close和closequery事件參見表1-15改變窗體大小時(shí)Resize事件和paint事件在調(diào)整窗體的大小時(shí),就會(huì)出現(xiàn)Resize事件。該事件過(guò)程的基本語(yǔ)法形式為:procedure(Sender:TObject);窗體的方法參見常見方法列表:p25窗口可以分為模態(tài)顯示和非模態(tài)顯示兩種顯示形態(tài)。采用模態(tài)顯示時(shí)用ShowModal方法打開窗口。打開模態(tài)窗口之后,同一程序其他窗口的操作被禁止,直到把模態(tài)窗口關(guān)閉,其它應(yīng)用程序的窗口可以被操作。非模態(tài)顯示的窗口用Show方法打開。非模態(tài)窗口打開后可以不關(guān)閉,然后再去打開其他窗口。創(chuàng)建新窗體一個(gè)對(duì)象的生命周期是從它被創(chuàng)建那一刻開始。當(dāng)我們不再使用某個(gè)對(duì)象時(shí),可以將這個(gè)對(duì)象從內(nèi)存空間中刪除,這樣可以避免不必要的數(shù)據(jù)浪費(fèi)內(nèi)存空間。默認(rèn)構(gòu)造方法是Create方法。使用這種方法構(gòu)造的對(duì)象(變量)的值,是該對(duì)象實(shí)體數(shù)據(jù)所在的內(nèi)存地址。默認(rèn)的解構(gòu)方法是Destroy,推薦使用的是Free。使用Free方法,既能刪除這個(gè)對(duì)象,還能刪除對(duì)象實(shí)體所占的內(nèi)存空間。窗體是一個(gè)對(duì)象,要想在程序中操作它,必須先調(diào)用其create函數(shù)創(chuàng)建它。要注意程序設(shè)計(jì)狀態(tài)與程序運(yùn)行狀態(tài)的區(qū)別。設(shè)計(jì)好的窗體在運(yùn)行時(shí),都應(yīng)該先創(chuàng)建出來(lái)才能執(zhí)行。主窗體:當(dāng)應(yīng)用程序運(yùn)行時(shí),首先顯示出來(lái)的窗體一般稱之為主窗體。主窗體一般由應(yīng)用程序自動(dòng)創(chuàng)建。但一個(gè)應(yīng)用程序,一般不會(huì)只有主窗體,其他窗體有兩種不同的創(chuàng)建方式。包括:靜態(tài)創(chuàng)建(自動(dòng)創(chuàng)建)和動(dòng)態(tài)創(chuàng)建(手動(dòng)創(chuàng)建)。1.靜態(tài)創(chuàng)建新窗體的步驟打開已有工程文件1.靜態(tài)創(chuàng)建新窗體的步驟打開已有工程文件新建窗體建立主窗體與該窗體的聯(lián)系。引用單元unit2o在進(jìn)行編譯時(shí)系統(tǒng)會(huì)自動(dòng)提示并添加代碼。也可手工在主窗體單元中添加對(duì)unit2的引用代碼。Useunit2保存并運(yùn)行。設(shè)置工程主窗體和自動(dòng)創(chuàng)建與手動(dòng)創(chuàng)建窗體的方法動(dòng)態(tài)創(chuàng)建新窗體靜態(tài)創(chuàng)建的窗體在運(yùn)行時(shí)將全部裝入內(nèi)存。當(dāng)窗體很多時(shí),會(huì)引起系統(tǒng)資源緊張。通過(guò)動(dòng)態(tài)創(chuàng)建的方法,在需要調(diào)用某個(gè)窗體時(shí),臨時(shí)創(chuàng)建,使用完后立即釋放。修改工程選項(xiàng)。選擇菜單aprojectIoptions",系統(tǒng)打開aprojectoptions”對(duì)話框,在forms選項(xiàng)卡中,所有窗提出現(xiàn)在自動(dòng)創(chuàng)建列表框中,選擇不需自動(dòng)創(chuàng)建的窗體,移到aAvailableforms”列表框中。在主調(diào)窗體中修改程序代碼。Form2:=(nil);7動(dòng)態(tài)創(chuàng)建的窗體在運(yùn)行結(jié)束后,一般應(yīng)手動(dòng)釋放,以釋放其所占用的內(nèi)存空間。釋放窗體的方法一般有兩種的destroy,free。一般用free,兩者在用法上稍有不同,請(qǐng)查閱幫助文檔進(jìn)一步了解。;或者;作業(yè):設(shè)計(jì)一個(gè)不含系統(tǒng)菜單的窗體,添加一個(gè)按鈕實(shí)現(xiàn)窗體的關(guān)閉。設(shè)計(jì)一個(gè)不能改變大小的窗體。設(shè)計(jì)一個(gè)透明窗體。提示:首先設(shè)置窗體的TransParentColor->True;然后設(shè)置窗體的Color與TransParentColorValue為相同值新建一個(gè)工程,創(chuàng)建三個(gè)窗體forml,form2,form3,將forml設(shè)為主窗體,在forml放置buttonl,button2兩按鈕,選擇buttonl,以無(wú)模式顯示Form2,選擇button2,以有模式顯示Form3。新建一個(gè)工程,創(chuàng)建三個(gè)窗體form1,form2,form3,將form1設(shè)為主窗體,在form1放置button1,button2兩按鈕,form2由應(yīng)用程序自動(dòng)創(chuàng)建,選擇button],以無(wú)模式顯示Form2,form3手動(dòng)創(chuàng)建,選擇button2,先創(chuàng)建form3,并以有模式顯示Form3。請(qǐng)編寫程序驗(yàn)證窗體Create、Show、Paint、Activate等事件激活的順序。

窗體組件(FORM)常見屬性屬性說(shuō)明Active指示此窗體是否擁有FOCUSActivecontrol指示窗體中目前擁有FOCUS的組件Activemdichild指示主窗體中目前擁有FOCUS的子窗體Activeolecontrol用于取得或設(shè)定此窗體上的OLE控制,以響應(yīng)FOCUS改變Bordericons指定哪些ICON顯示在窗體的TITLEBAR上Bordersytle用以指定窗體BORDER外觀及行為Canvas提供使用者可在窗體上CLIENT內(nèi)自行顯示的畫板,一般在ONPAINT事件中使用Clienthandle提供可存取系統(tǒng)內(nèi)部使用的MDICLIENTWINDOWHANDLEClientheight窗體客戶區(qū)高度Clientrect窗體客戶區(qū)所對(duì)應(yīng)的矩形Clientwidth窗體客戶區(qū)寬度

Defaultmonitor指定此窗體所顯示的預(yù)設(shè)的顯示器,用于多顯示器環(huán)境下Designer此窗體的設(shè)計(jì)界面,一般不用用戶設(shè)定Droptarget用以指定窗體是否為目前DRAGANDDrop動(dòng)作的目標(biāo)Floating用以指示此窗體是否正在停泊在另一個(gè)視窗內(nèi)Formstate用于指示此窗體所處狀態(tài)Formstyle用于指小窗體的樣式Helpfile用于指定HELP文件Icon指定窗體最小化時(shí)所顯小的ICONKeypreview指定此窗體是否需在目前的ACTIVE組件之前取得鍵盤輸入Mdichildcount用于取得子窗體數(shù)目Mdichildren用于取得子窗體(數(shù)組)Menu用于指定窗體主菜單Modalresult當(dāng)窗體作用為MODAL對(duì)話框時(shí),作為對(duì)話框的效果

Monitor用于指示窗體所顯示的顯示器Oldcreateorder指定ONCreate和ONDESTROY事件何時(shí)發(fā)生Oleformobject對(duì)包含在此窗體內(nèi)的OLE對(duì)象指定OLEFORM界面Parent設(shè)定此窗體的PARENTParentbidimode指定是否此窗體使用PARENT的BIDIMODEPixelsperinch表示此窗體設(shè)計(jì)時(shí)系統(tǒng)上字形的比例Position表示此窗體的大小及位置Printscale表示此窗體打印的比例Scaled用于指定窗體的大小是否依據(jù)PIXELSPERINTCH屬性來(lái)指定Tilemode用于指定TILE方法被調(diào)用時(shí)子窗體如何排列Visible用于設(shè)定此窗體是否被顯示W(wǎng)indowmenu如果窗體是個(gè)MDIPARENT窗體,用于指定視窗的菜單Windowstate用于指定窗體如何顯示于屏幕中窗體組件(FORM)常見事件及說(shuō)明

事件說(shuō)明Onpaint當(dāng)窗體必須重畫時(shí)發(fā)生Onhelp當(dāng)窗體收到HELP請(qǐng)求時(shí)發(fā)生Ondragdrop當(dāng)一個(gè)對(duì)象拉進(jìn)此窗體并丟下時(shí)發(fā)生Ondragover當(dāng)一個(gè)對(duì)象拉進(jìn)此窗體時(shí)發(fā)生Onconstrainedresize在ONCANRESIZE事件發(fā)生后發(fā)生Oncanresize當(dāng)企圖改變窗體尺寸時(shí)確認(rèn)是否改變Onresize當(dāng)窗體尺寸改變時(shí)發(fā)生Onstartdock當(dāng)對(duì)象開始停泊時(shí)發(fā)生Onenddock當(dāng)對(duì)象停泊結(jié)束時(shí)發(fā)生Onundock當(dāng)窗體解除停泊時(shí)發(fā)生Ondockdrop當(dāng)其它窗體停泊到此組件時(shí)發(fā)生Ondockover當(dāng)其它窗體向此組件停泊接近時(shí)發(fā)生Ongetsiteinfo當(dāng)有關(guān)停泊消息傳回此窗體時(shí)發(fā)生Oncreate當(dāng)窗體創(chuàng)建時(shí)發(fā)生

Onclose當(dāng)窗體即將關(guān)閉時(shí)發(fā)生Onclosequery在窗體即將關(guān)閉時(shí)確認(rèn)是否真的關(guān)閉窗體Ondestroy當(dāng)窗體釋放時(shí)發(fā)生Onshow當(dāng)窗體顯示時(shí)發(fā)生Onhide當(dāng)窗體隱藏時(shí)發(fā)生Onactivate當(dāng)窗體獲得FOCUS時(shí)發(fā)生Ondeactivate當(dāng)窗體失去FOCUS時(shí)發(fā)生使用焦點(diǎn)焦點(diǎn)focus就是光標(biāo),當(dāng)對(duì)象具有焦點(diǎn)時(shí),才能響應(yīng)用戶的操作,焦點(diǎn)就是對(duì)象接受用戶操作(鼠標(biāo)或鍵盤)的能力。與焦點(diǎn)相關(guān)的屬性:主要有visibleenabled當(dāng)他們都為true時(shí),對(duì)象才能夠獲得焦點(diǎn)。有些控件不具有焦點(diǎn)。哪些呢獲得焦點(diǎn)的方法:程序設(shè)計(jì)時(shí),通過(guò)代碼設(shè)定,調(diào)用組件的setfocus方法,例如:;程序運(yùn)行中:用戶操作時(shí)

(])鼠標(biāo)單擊對(duì)象(visibleenabled都為true)(2)按〈Tab〉鍵或〈Shift〉+〈Tab在當(dāng)前窗體的各對(duì)象之間巡回移動(dòng)焦點(diǎn)(3)按熱鍵選擇對(duì)象。獲得焦點(diǎn)的順序:TabOrder屬性決定控件的接收焦點(diǎn)的順序。從0開始。TabStop屬性決定焦點(diǎn)是否能停在該控件上。False跳過(guò)該控件。3.1與輸入輸出有關(guān)的控件Label(標(biāo)簽)一般放在對(duì)象的旁邊,用來(lái)標(biāo)記這些對(duì)象,從而對(duì)用戶的操作進(jìn)行提示,也可以用來(lái)顯示信息??梢栽跇?biāo)簽中設(shè)置熱鍵,也即在Caption屬性值段中輸入含有“&”的字串,當(dāng)用戶使用“Alt+關(guān)鍵字母”時(shí),將自動(dòng)選中它所指向的對(duì)象。方法是設(shè)置Label部件的FocusControl屬性,在值段中,選用與它關(guān)聯(lián)對(duì)象的對(duì)象名稱。Label控件貝七名nameLabel控件貝七名nameLabel輸出文本。1.常用屬性Caption即標(biāo)題屬性,這是TLabel組件最重要的屬性,用來(lái)設(shè)置該組件

Caption中顯示的文本。例1:利用標(biāo)簽設(shè)計(jì)并控制文本的投影效果。尸1例1:利用標(biāo)簽設(shè)計(jì)并控制文本的投影效果。尸1口1就包括靜態(tài)設(shè)置屬性,動(dòng)態(tài)改變屬性。Edil2AutoSize布爾型,用來(lái)決定標(biāo)簽是否自動(dòng)隨文本的長(zhǎng)短而改變大小。Wordwrap布爾型,用于設(shè)定組件文本寬于組件寬度時(shí)是否自動(dòng)換行Alignment枚舉型,用來(lái)決定標(biāo)簽中顯示的文本的對(duì)齊方式。Enabled布爾型,用來(lái)決定該組件是否能即響應(yīng)用戶的操作。Visible布爾型,用來(lái)決定在程序運(yùn)行時(shí)組件是否可見Font該屬性用來(lái)設(shè)置標(biāo)簽組件中顯示的文本字體,是一個(gè)對(duì)象屬性。ShowAccelChar布爾型,用來(lái)確定標(biāo)簽的Caption是否出現(xiàn)表示熱鍵的下劃線。Transparent布爾型,用來(lái)確定標(biāo)簽是否為透明的。2.標(biāo)簽的應(yīng)用EditJ課堂練習(xí):修改實(shí)驗(yàn)一的登錄窗體,設(shè)計(jì)如圖所示界面,要求.兩個(gè)label都采用折行顯示方式,對(duì)齊方式采用上下、左右均采用居中對(duì)齊,且當(dāng)按熱鍵U,P時(shí)編輯框1,2可分別獲得焦點(diǎn)。Edit控件Edit、MaskEdit、Mem。部件都是用作接收、顯示用戶輸入文本的。它們具有一些相同的屬性。ReadOnly在運(yùn)行時(shí)間內(nèi)控制對(duì)象是否可以進(jìn)行Windows的操作,當(dāng)此值為False時(shí),他們接受用戶的輸入。MaxLength可以設(shè)置輸入文本的長(zhǎng)度限制値為0時(shí),不限制文本長(zhǎng)度。用PasswordChar屬性可以按照顯示隱蔽密碼的方法顯示用戶輸入文本例如,它的值為,運(yùn)行時(shí),輸入將用“*”來(lái)顯示,「’?.?……從而提供了一種安全措施。當(dāng)AutoSelect屬性為true時(shí),文本框獲得焦點(diǎn)時(shí),文本被選中,呈高亮度123456,按鍵操作會(huì)將這些字符刪除,替換成當(dāng)前的鍵盤輸入。123456這種設(shè)置為操作提供了方便,用戶不必每次先刪除原來(lái)的文本;但也可能會(huì)導(dǎo)致誤刪文本。將其設(shè)置成False,這種替代功能就被取消了。燈囹[呉號(hào)Align屬性調(diào)整該對(duì)象在窗口中的對(duì)齊情況,有alNone(無(wú)對(duì)齊指定)、alBottom(底部對(duì)齊)、alClient(全窗口顯示)等可以選擇;而Alignment屬性則決定了文本在框中的對(duì)齊顯示格。Lines屬性訪問(wèn)的文本被存儲(chǔ)在一個(gè)TString對(duì)象中,按動(dòng)它的省略按鈕,可以通過(guò)對(duì)話框向它增加文本,也可以用程序?qū)@一屬性進(jìn)行操作,以達(dá)到修改或增加備注文本的目的。編輯類組件的繼承關(guān)系l.TEdit組件的常用屬TCustom]MaskEditTMaskEditTCoiinpoiieiitTControlTWinConmolTCustomEditTEditTMeinoTCuxtoinMemoTCustoinKicliEditText代表顯示在編輯框中的文本。TRkhEditReadOnly該屬性用來(lái)決定編輯框中顯示的文本是否可以修改。PasswordChaCharCaseAutoSelectBorderStyleMaxLengthSelStartSelText用來(lái)決定用戶輸入的字符是原樣顯示還是以密碼方式顯示O用來(lái)控制編輯框中文本的大小寫。用來(lái)決定當(dāng)編輯框獲得焦點(diǎn)時(shí),是否自動(dòng)選定顯示的文本。緒付虧11234561用來(lái)決定編輯框組件是否有邊框及邊框的樣式。用來(lái)決定編輯框中最多能夠輸入或顯示的字符個(gè)數(shù)。運(yùn)行屬性,用來(lái)設(shè)置或指示選中文本的第一個(gè)字符的位置,文本框的第一個(gè)字符位置為0。運(yùn)行屬性,用來(lái)設(shè)置或指示選中的文本。SelLength運(yùn)行屬性,用來(lái)設(shè)置或指示選中文本的長(zhǎng)度。Modified運(yùn)行屬性,用來(lái)指示編輯框內(nèi)容是否發(fā)生了改變。CanUndo用來(lái)指出對(duì)編輯框中顯示內(nèi)容的改變是否能夠撤消。只讀屬性HideSelecti用來(lái)決定當(dāng)編輯框失去焦點(diǎn)時(shí),選中的文本是否還是on以選屮的方式提供視覺(jué)提示。例如:如果為'abcdef'下列程序運(yùn)行后,editl選中的文本是什么呢:=1;:=3;TEdit組件的常用方法SetFocus該方法用于為編輯框設(shè)置焦點(diǎn),無(wú)參數(shù)。Clear該方法用來(lái)清除編輯框中的所有文本,無(wú)參數(shù)。ClearSelection該方法用來(lái)清除編輯框中選中的文本,無(wú)參數(shù)。

SelectAll該方法用來(lái)選中編輯框中的所有文本。Undo該方法用來(lái)撤消在編輯框中最近所做的編輯操作。ClearUndo該方法用來(lái)清除“撤消”緩沖區(qū),從而不能對(duì)以前的操作做撤消操作,該方法無(wú)參數(shù)。CopyToClipboard該方法用來(lái)把選中的文本復(fù)制到剪貼板上,相當(dāng)于復(fù)制操作。CutToClipboard該方法用來(lái)把選中的文本移動(dòng)到剪貼板上,相當(dāng)于男切操作。PasteFromClipboa該方法用來(lái)把剪切板上的文本粘貼到插入點(diǎn)處,相當(dāng)rd于粘貼操作。3.TEdit組件的常用事件OnChange當(dāng)編輯框輸入的text屬性值發(fā)生改變時(shí)將觸發(fā)該事件。OnKeyPress當(dāng)用戶按下鍵盤上的ASCII字符鍵時(shí)觸發(fā)該事件。OnKeyDown當(dāng)用戶按下鍵盤上的任何鍵時(shí)都會(huì)觸發(fā)該事件。OnKeyUp當(dāng)用戶按下任何一個(gè)鍵后再松開時(shí)將觸發(fā)該事件。參見p54例題2練習(xí):新建一個(gè)工程,窗體上一個(gè)文本框editl,兩個(gè)按鈕,caption分別為“剪切”,“恢復(fù)”,運(yùn)行后要求在edit1中輸入文本,點(diǎn)“剪切”,把edit1中的內(nèi)容剪切掉,點(diǎn)“恢復(fù)”,把edit1中的內(nèi)容恢復(fù)出來(lái)。新建一個(gè)工程,窗體上文本框edit1,使用戶輸入字母一律轉(zhuǎn)換為大寫顯示(焦點(diǎn)在最右端),保存。新建一個(gè)工程,實(shí)現(xiàn)功能限制:在edit1中只能輸入10個(gè)字母,超過(guò)的在edit2中顯示。保存。按照要求編寫程序:新建一個(gè)工程,在窗體中添加兩個(gè)文本框分別為“Edit1”“Edit2”,默認(rèn)顯示內(nèi)容為空。請(qǐng)?jiān)O(shè)置適當(dāng)?shù)目丶傩?,并編寫適當(dāng)?shù)氖录^(guò)程,使得程序運(yùn)行時(shí),只能在Edit1中輸入數(shù)字,且每輸入一個(gè)字符,則顯示一個(gè)“*”,同時(shí)在Edit2中顯示輸入的內(nèi)容。程序中不得使用任何變量。程序編寫完畢后,運(yùn)行,查看結(jié)果。新建一個(gè)工程,實(shí)現(xiàn)功能:?jiǎn)螕鬳dit1框時(shí),edit1中的內(nèi)容被全選。保存。按照要求編寫程序:新建一個(gè)工程,在窗體中添加一個(gè)文本框“Edit1”編寫適當(dāng)?shù)氖录^(guò)程,使得程序運(yùn)行時(shí),如果單擊窗體,則可以使文本框移動(dòng)到窗體左上角;如果在文本框中輸入信息,則可以使文本框移動(dòng)到窗體右上角。程序中不得使用任何變量,只允許通過(guò)修改屬性的方式移動(dòng)文本框。程序編寫完畢后,運(yùn)行,查看結(jié)果。

Memo控件i.TMemo組件的常用屬性屬性說(shuō)明Caretpos用來(lái)得到光標(biāo)的位置.其中x表示所在列,y表示所在仃,從0開始計(jì)數(shù)。ScrollBars用來(lái)設(shè)置備注框是否出現(xiàn)滾動(dòng)條以及滾動(dòng)條的種類。Lines按仃處理文本。Tstrings類型,字符串?dāng)?shù)組,序號(hào)從0開始。Wordwrap用來(lái)決定當(dāng)輸入的文本到達(dá)右邊界時(shí)是否插入軟回車,換到下一行輸入。WantRetur為布爾型,它確定在該組件中用戶輸入的回車鍵是作為文本ns的內(nèi)容還是進(jìn)入窗體中。若WantReturns為True,則用戶輸入的回車鍵作為文本的部分;若WantReturns為False,則用戶輸入回車鍵時(shí),激活窗體中的其它在WantReturns為False時(shí),要在備注中輸入回車,使用Ctrl+Enter。WantTabs屬性:該屬性為布爾型,它確定在該組件中是否可使用Tab鍵。當(dāng)WantTabs為True可使用。若WantTabs為True,則用戶不能使用Tab鍵來(lái)選定窗體上的下一組件。也就是說(shuō)從其它組件中,用戶可以使用Tab鍵進(jìn)入該組件,但在該組件中

使用Tab鍵不能進(jìn)入其它的組件。Modified運(yùn)行屬性,用來(lái)指示mem。內(nèi)容是否發(fā)生了改變。TEXT用于取得組件中文本(字符串)TMemo組件的常用方法Add該方法用來(lái)向字符串列表的尾部添加一個(gè)字符串。其語(yǔ)法格式如下:functionAdd(constS:string):Integer;virtual;Clear該方法用來(lái)清空字符串列表。其語(yǔ)法格式如下:procedureClear;virtual;abstract;Delete該方法用來(lái)從字符串列表中刪除一個(gè)指定的字符串。其語(yǔ)法格式如下:procedureDelete(Index:Integer);virtual;abstract;Insert用來(lái)向字符串列表中插入一個(gè)字符串。其語(yǔ)法格式如下:procedureInsert(Index:Integer;constS:string);virtual;abstract;Move該方法用來(lái)在字符串列表中移動(dòng)字符串的位置。其語(yǔ)法格式如下:procedureMove(CurIndex,NewIndex:Integer);

virtual;LoadFromFi該方法的作用是用指定的文件填充字符串列表。其語(yǔ)法格式le如下:procedureLoadFromFile(constFileName:string);virtual;SaveToFile該方法用來(lái)把字符串列表中的數(shù)據(jù)寫到某文件中去。其語(yǔ)法格式如下:procedureSaveToFile(constFileName:string);virtual;APPEND在末追加一行文本例:InpurMaskEdhorJnpcitMask.:SampleM-s^ks:1CharacterforRlmk*: |PSaveLiteralCharacteisPhoneEbtensianSocialSecurilyShort2ipCodsLengZip&de□ateLengTimeShortTime(415)555-12121545D595-55-555590504areoa-ojoD□E-27-94-0905:15PM13:45工d石kInput:1Masks...OK |CancelI Help輸入格式的第一部分是掩碼本身,也就是數(shù)據(jù)輸入格式。在這一部分用一些特殊的格式符來(lái)表示應(yīng)輸入的字符類型及格式叩10A9:C>11<這樣一串輸入格

式掩碼。常用的MaskEdit輸入格式符有:格式符意義l和Ll表示該位置只它類型的字符。可能L該,是一個(gè)字母,可以用光標(biāo)鍵跳過(guò)它,但是不能是其位置必須是一個(gè)字符。a和Aa表示該位置只字母或數(shù)字字符可能。是個(gè)字母或數(shù)字字符。A表示該位置必須是個(gè)c和Cc表示該位置只[可能是個(gè)字母,C表示該位置必須有個(gè)字母。9和09表示該位置只[可能是個(gè)數(shù)字,0表示該位置必須有個(gè)數(shù)字?!春汀怠锤袷椒硎倦S后的字母均以小寫的形式顯示,直到遇到個(gè)〉格式字符或?格式符。>格式符則和〈正好相反?!础当硎静蛔鞔笮戅D(zhuǎn)換,以輸入時(shí)的形式為準(zhǔn)。\表示該格式符之后的那個(gè)掩碼格式符將作為數(shù)據(jù)中的普通字符對(duì)待。當(dāng)用戶想在數(shù)據(jù)中放進(jìn)個(gè)掩碼格式符時(shí),應(yīng)該在這個(gè)格式符前放個(gè)'符號(hào)。如\A,\\等等。#表示該位置|可能是一個(gè)數(shù)字或正負(fù)號(hào)。如有!表示數(shù)據(jù)前的空格將不被保存在數(shù)據(jù)中,沒(méi)有!則數(shù)據(jù)后的空格不!被保存。!格式符只能放在掩碼格式符的第一個(gè)字符處。;和/標(biāo)準(zhǔn)的分隔符,可作為數(shù)據(jù)的一部分。其中/在顯示時(shí)為‘一'而非/。在輸入格式中的第二部分只有0和1兩種選擇。如為1,則掩碼中的非用戶輸入數(shù)據(jù)和標(biāo)準(zhǔn)分隔符等其它各種字符會(huì)作為數(shù)據(jù)的一部分保存;為0則不保存。輸入格式的第三部分用于表示數(shù)據(jù)中的空位用那個(gè)字符代替顯示。!\(9999\)999999;1;_“!”將前面的空格去掉?!?(”區(qū)號(hào)的左括號(hào)。因?yàn)槔ㄌ?hào)是特殊字符,所以在前面加“\”。“9999”,區(qū)號(hào)的4個(gè)號(hào)碼,當(dāng)然若改成“0000”,則用戶一定要輸入?yún)^(qū)號(hào)?!癨)”區(qū)號(hào)的右括號(hào)?!?99999”,電話的6個(gè)號(hào)碼。“;”第一部分和第二部分的分隔?!?”將輸入后的區(qū)號(hào)括號(hào)作為數(shù)據(jù)的一部分。若“0”,則括號(hào)不作為數(shù)據(jù)一部分,即得到的數(shù)據(jù)是區(qū)號(hào)和電話號(hào)碼直接相連(沒(méi)有括號(hào))?!?;”第二部分和第三部分的分隔。“―”等待用戶輸入時(shí)顯示的字符。最后控件的顯示結(jié)果為:() 例如要輸入一個(gè)汽車牌號(hào)如CA-300019。該數(shù)據(jù)前兩位為字母且為大寫,第三位為一個(gè)系統(tǒng)分隔符號(hào),后6位為數(shù)字。可以這樣設(shè)計(jì)掩碼格式:?。綥L/000000;1;_ 掩碼的第二部分取為1表示系統(tǒng)分隔符‘一'也將作為數(shù)據(jù)保存。第三部分的表示在掩碼編輯框中為空時(shí),用來(lái)表示空位。我們也可以用空格來(lái)標(biāo)識(shí)空位。 乂如一個(gè)郵編如P0-100083,其中PO表示郵政,是每個(gè)郵政編碼中都有的前 綴,可以這樣設(shè)計(jì)掩碼格式:!P0/000000;1;_在掩碼設(shè)計(jì)對(duì)話框的右側(cè)是SampleMasks,這里有系統(tǒng)預(yù)設(shè)的常用的掩碼格式,如電話號(hào)碼(Phone)、日期(Date)等。我們可以選擇一個(gè),然后進(jìn)行必要的調(diào)整。對(duì)話框左下部是一個(gè)TestInput欄,我們可以在這里輸入字符,以檢 測(cè)輸入格式是否令人滿意。 乂例如:時(shí)間可以為!90:00;1;_;IP地址可以為!000\.000\.000\.000;1;_例如:!0000年09月09日;1;_text值:2006年03月01日!0000年09月09日;0;_text值:EditText值:2006年03月01日參見p59例4使用對(duì)話框函數(shù)與對(duì)話框過(guò)程ShowMessage與ShowMessageFmt過(guò)程過(guò)程procedureShowMessage(constMsg:string);ShowMessage過(guò)程的參數(shù)是一個(gè)字符串常量。ShowMessage過(guò)程的作用是顯示一個(gè)最簡(jiǎn)單的對(duì)話框,對(duì)話框以應(yīng)用程序的執(zhí)行文件名作為標(biāo)題,對(duì)話框右上側(cè)是一個(gè)關(guān)閉按鈕,在對(duì)話框中顯示了字符串常量,也就是用戶要顯示的信息內(nèi)容,可以使用回車符(#13)使文本換行。在對(duì)話框下部是一個(gè)0K按鈕,單擊按鈕關(guān)閉對(duì)話框返回應(yīng)用程序。2.ShowMessageFmt過(guò)程procedureShowMessageFmt(constMsg:string;Params:arrayofconst);ShowMessageFmt過(guò)程的參數(shù)是一個(gè)格式字符串和一個(gè)數(shù)組,與Format函數(shù)相似,可以將用戶顯示的信息按一定格式顯示在對(duì)話框中。參見P62例題5MessageDlg與MessageDlgPos函數(shù)1、MessageDlg函數(shù)調(diào)用MessageDlg函數(shù),可以在屏幕的中心處顯示信息對(duì)話框,其語(yǔ)法格式為:FunctionMessageDlg(constMsg:string;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint):word;一般調(diào)用方式為〈變量>=MessageDlg(<信息內(nèi)容>,<對(duì)話框類型〉,〈按鈕組〉,HelpCtx);說(shuō)明:〈信息內(nèi)容〉是顯示在對(duì)話框中的信息?!磳?duì)話框類型〉是對(duì)話框的類型,其取值與意義見下表。取值意義mtWarning含有感嘆號(hào)符號(hào)的警告對(duì)話框mtErrot含有紅色又符號(hào)的錯(cuò)誤對(duì)話框mtlnformation含有蘭色i符號(hào)的信息對(duì)話框mtConfirmation含有綠色符號(hào)的確認(rèn)對(duì)話框mtCustom不含圖標(biāo)的一般對(duì)話框,對(duì)話框的標(biāo)題是程序的名稱〈按鈕組〉指定對(duì)話框中出現(xiàn)的按鈕組,其中出現(xiàn)的按鈕與參數(shù)的取值見表:取值意義

mbYesYes按鈕,函數(shù)返回mrYes或6mbNoNo按鈕,函數(shù)返回mrNo或7mbOkOk按鈕,函數(shù)返回mrOk或1mbCancelCancel按鈕,函數(shù)返回mrCancel或2mbHelpHelp按鈕mbAbortAbort按鈕,函數(shù)返回mrAbort或3mbRetryRetry按鈕,函數(shù)返回mrRetry或4mbIgnoreIgnore按鈕,函數(shù)返回mrIgnore或5mbAllAll按鈕,函數(shù)返回mrAll或8mbNoToAllNoToAll按鈕,函數(shù)返回或9mbYesToAllYesToAll按鈕,函數(shù)返回或10〈按鈕組〉可以組的形式,如[mbYes,mbNo]表示對(duì)話框中出現(xiàn)兩個(gè)按鈕:“Yes”和“No”;也可以常量的形式,如mbOKCancel表示對(duì)話框中出現(xiàn)兩個(gè)按鈕:“0K”和“Cancel”。按鈕常量的含義參見下表:

常量意義mbYesNoCancel三個(gè)按鈕:mbYes、mbNo、mbCancelmbOKCancel兩個(gè)按鈕:mbOK、mbCancelmbAbortRetrylgnore三個(gè)按鈕:mbAbort、mbRetry、mbIgnore(4)HelpCtx指定當(dāng)用戶單擊“Help”按鈕或按<F1>鍵時(shí),顯示的幫助主題。(5)MessageDlg函數(shù)將根據(jù)用戶所選擇的按鈕,返回2SJConfirm相應(yīng)的值(Word類型)2SJConfirm例如:procedure(Sender:TObject);varx:integer;beginx:二MessageDlg('請(qǐng)選擇',mtconfirmation,mbokcancel,1);ifx=mrokthen…else…;end;MessageDlgPos函數(shù)定義:functionMessageDlgPos(constMsg:string;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint;X,Y:Integer):Word;比MessageDlg多了一項(xiàng)功能,就是可以自由定位對(duì)話框的顯示區(qū)域,由x,y確定。CreateMessageDialog函數(shù)functionCreateMessageDialog(constMsg:string;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons):TForm;僅產(chǎn)生一個(gè)信息框窗體,需要時(shí)可采用窗體的showmodal方法顯示。InputBox與InputQuery函數(shù)InputBox對(duì)話框既能讓用戶對(duì)按鈕做選擇,乂能讓用戶通過(guò)鍵盤輸入文字。在Dialogs單元文件中有如下定義:functionInputBox(constACaption,APrompt,ADefault:string):string;InputBox對(duì)話框的函數(shù)說(shuō)明顯示有3個(gè)參數(shù)和1個(gè)返回值。參數(shù)Acaption是對(duì)話框的標(biāo)題;參數(shù)Aprompt是對(duì)話框的提示文字;參數(shù)Adefault是代表默認(rèn)字符串。InputBox對(duì)話框上有兩個(gè)按鈕,“OK”按鈕和“Cancel”按鈕。在用戶按“OK”按鈕后,系統(tǒng)會(huì)將用戶輸入的字符串返回給程序,相反,如果用戶按的是“Cancel”按鈕,系統(tǒng)會(huì)將默認(rèn)字符串返回給程序。這個(gè)對(duì)話框經(jīng)常用來(lái)輸入用戶名稱或者用戶密碼。

該函數(shù)用于在程序運(yùn)行過(guò)程中顯示一個(gè)包含字符串和按鈕信息的輸入對(duì)話框,用戶對(duì)這個(gè)對(duì)話框進(jìn)行準(zhǔn)確響應(yīng)后,才能關(guān)閉該對(duì)話框,例如:procedure(Sender:TObject);varx:integer;beginx:=strtoint(inputbox('請(qǐng)輸入:’,’年齡','15'));showmessage(inttostr(x));end;functionInputQuery(constACaption,APrompt:string;varValue:string):Boolean;與inputbox函數(shù)相似,函數(shù)返回值是布爾值,當(dāng)用戶按確認(rèn)按鈕時(shí),返回true,否則返回false.前面兩個(gè)參數(shù)與inputbox相同,后面一個(gè)變量,初始值是默認(rèn)值,當(dāng)用戶單擊確認(rèn)按鈕時(shí),輸入的文本保存在該變量中。

procedure(Sender:TObject);vary:string;beginy:='45';InputQueryC請(qǐng)輸入','年齡',y);showmessage(y);end;參見p64例題6。用于分組的控件Panel控件面板組口件在標(biāo)準(zhǔn)(Standard)頁(yè)標(biāo)簽上。該組件用來(lái)在窗體上放置一BevelInner確定面板組件的內(nèi)部斜BevelInner屬性確定內(nèi)部斜面。面如何出現(xiàn);BevelOuter屬性BevelInner確定面板組件的內(nèi)部斜BevelInner屬性確定內(nèi)部斜面。面如何出現(xiàn);BevelOuter屬性BevelOuter確定面板組件的外部斜面。確定外部斜面如何出現(xiàn)。使用這三個(gè)屬性就可以改變面板的外觀。BevelWidth確定面板的內(nèi)部斜面和外部斜面的寬度(單為像素)。BorderWidthBorderWidth屬性用來(lái)確定面板邊界的寬度(單位象素)。默認(rèn)值為0,即沒(méi)有邊界。BorderStyleBorderStyle屬性確定面板邊界的類型:bsNone,表示無(wú)邊界;bsSingle表示單線邊界。Ctrl3DCtrl3D屬性確定面板是否為立體的CursorCursor屬性用來(lái)確定當(dāng)鼠標(biāo)指針移動(dòng)到面板上時(shí),鼠標(biāo)指針的形狀。面板組件的事件與面板組件有關(guān)的主要事件有單擊事件(OnClick)與雙擊事件(OnDblClick)、OnEnter、OnExit、OnStartDrag、OnEndDrag等事件。參見p68,69例題7,8GroupBox控件分組框組件在標(biāo)準(zhǔn)頁(yè)標(biāo)簽上。(用于作容器)

該組件為標(biāo)準(zhǔn)的Windows分組框,使TBitBniTCheckBoxTCoiTqionentTContnolTCoolBarTToolBarTGrapliicControlTSpeedButUmTWiiiControlTToolWindowTButtonControlTButtonTRadioButtonTCustomCheckBox用它可以將窗體上的相關(guān)的組件成組。在TBitBniTCheckBoxTCoiTqionentTContnolTCoolBarTToolBarTGrapliicControlTSpeedButUmTWiiiControlTToolWindowTButtonControlTButtonTRadioButtonTCustomCheckBox該組件中成組的最常見組件為單選按鈕其使用方法為在窗體上放置一分組框,然后將要出現(xiàn)在該組件中的組件放置其中。Caption:屬性的值用來(lái)表明該組件的用途。若在該組件中放置另一窗口類的組件,則該組件就稱為父組件。參見p70例題9。按鈕類控件按鈕類控件主要包括:基本按鈕button、位圖按鈕bitbtn、復(fù)選框checkbox、選項(xiàng)按鈕radiobuttonbutton控件在標(biāo)準(zhǔn)頁(yè)標(biāo)簽上。屬性數(shù)據(jù)類說(shuō)明NameString按鈕的名稱,編寫程序代碼時(shí)使用它CaptionString按鈕的標(biāo)題,就是按鈕上顯示的文字。可以為按鈕指CancelBoolean缺省值為False,當(dāng)取值為True時(shí),無(wú)論何時(shí)按下EscDefaultBoolean當(dāng)屬性值為True時(shí),按下Enter鍵,當(dāng)前按鈕產(chǎn)生HintString按鈕的提示文本保存在這里,當(dāng)鼠標(biāo)光標(biāo)停留時(shí),顯ShowhintBoolean確定是否顯示提示文本,缺省值為False1.按鈕組件的屬性Cancel屬性該屬性為布爾型,它確定該組件是否為取消按鈕。若Cancel屬性為True,則無(wú)論何時(shí)用戶按Esc鍵時(shí),該組件的OnClick事件處理程序就被執(zhí)行。雖然窗體中可以設(shè)計(jì)多個(gè)取消按鈕,但只執(zhí)行可見的Tab鍵次序中第一個(gè)按鈕的OnClicK件處理程序。Default屬性該屬性為布爾型,它確定該組件是否為默認(rèn)按鈕。若Default屬性為True,則無(wú)論何時(shí)用戶按回車鍵時(shí),該組件的OnClick事件處理程序就被執(zhí)行。唯一的例外是若用戶在按回車鍵,選定了其它的按l鈕,則執(zhí)行該按鈕的OnClick事件處理程序。雖然窗體中可以設(shè)計(jì)多個(gè)默認(rèn)按鈕,但只執(zhí)行Tab鍵次序中第一個(gè)按鈕的OnClick事件處理程序。當(dāng)一按鈕成為焦點(diǎn)(激活時(shí)),它就成為臨時(shí)的默認(rèn)按鈕。但當(dāng)焦點(diǎn)移動(dòng)到其它非按鈕的組件上時(shí),Default屬性值為True的按鈕就成為默認(rèn)的按鈕。ModalResult屬性該屬性只為運(yùn)行的屬性。窗體的ModalResult屬性用來(lái)終止modal窗體。ModalResult的默認(rèn)值為0,設(shè)置為非零值就可以設(shè)置窗體的modal狀態(tài)。當(dāng)用戶選擇關(guān)閉modal窗體時(shí),按鈕單擊設(shè)置ModalResult關(guān)閉窗體,賦給ModalResult的值成為ShowModal函數(shù)的返回值。具有ModalResult屬性的按鈕也是只讀的,使用ModalResult屬性可來(lái)關(guān)閉modal窗體。如建立一個(gè)具有兩個(gè)按鈕的對(duì)話框:確定及取消按鈕,確定按鈕的ModalResult屬性設(shè)置為mrOK,取消按鈕設(shè)置為mrCancelo當(dāng)用戶選擇其中一個(gè)按鈕時(shí),則終止對(duì)話框的modal狀態(tài)。因此使用ModalResult屬性就可以在不編寫事件處理程序的情況下關(guān)閉對(duì)話框。2.按鈕組件的事件與按鈕組件有關(guān)的主要事件有單擊事件(OnClick)、雙擊事件(OnDblClick)、0nEnter>OnExit、OnStartDrag>OnEndDrag等事件。ONCLICK的激發(fā):用戶使用鼠標(biāo)單擊按鈕當(dāng)按鈕獲得焦點(diǎn)時(shí),按ENTER鍵或空格鍵。練習(xí):

在名稱為Forml的窗體上建立二個(gè)名稱分別為Cmdl、Cmd2,標(biāo)題為〃按鈕一〃、〃按鈕二〃的命令按鈕。要求程序運(yùn)行后,如果單擊〃按鈕一〃,則把〃按鈕二〃移至「按鈕一〃上,使兩個(gè)按鈕重合。注意:在程序中不得使用任何變量(必須通過(guò)屬性設(shè)置來(lái)移動(dòng)控件)。在名稱為Forml的窗體上建立一個(gè)文本框,二個(gè)名稱分別為buttonl、button2按鈕在buttonl的onclick事件中添加代碼在button2的onclick在button2的onclick事件中添加代碼:='cancel';要求當(dāng)程序運(yùn)行時(shí),焦點(diǎn)在編輯框上,當(dāng)按回車鍵時(shí),執(zhí)行buttonl的onclick事件,按esc鍵時(shí),執(zhí)行button2的onclick事件體,當(dāng)點(diǎn)擊退出程序按鈕時(shí),窗體yes顯示,當(dāng)按yes按鈕時(shí),關(guān)閉整個(gè)程序,當(dāng)按no按鈕時(shí),自動(dòng)關(guān)閉當(dāng)前窗體,回到第一個(gè)窗體。要求yes,n。按鈕不寫任何代碼.BitBtn按鈕組件位圖按鈕組件位于組件面板的Additional標(biāo)簽頁(yè),與Button組件所不同的是多了一個(gè)位圖符號(hào)在按鈕上,該組件用于創(chuàng)建一個(gè)其上帶有位圖的按鈕,其中大部分屬性和事件與Button一致,這里僅介紹它所獨(dú)有的屬性。常用屬性與事件:Kind屬性Glyph屬性NumGlyphs屬性Layout屬性O(shè)nClick事件MARGIN:用以設(shè)定按鈕邊與圖像邊之間的距離(以象素為單位)NUMGLYPHS:用以設(shè)定按鈕圖像的數(shù)目SPACING:用以設(shè)定圖像與文本之間的距離(以象素為單位)Glyph屬性:為按鈕指定一個(gè)位圖文件,顯示在按鈕的表面。Kind屬性:決定位圖按鈕的種類。位圖按鈕使用最多的屬性就是KindotypeTBitBtnKind=(bkCustom,bkOK,bkCancel,bkHelp,bkYes,bkNo,bkClose,bkAbort,bkRetry,bklgnore,bkAll);參見p73例題10復(fù)選框組件(CheckBox)(參看word段落設(shè)置)復(fù)選框組件在標(biāo)準(zhǔn)頁(yè)標(biāo)簽上。1.復(fù)選框組件的屬性ALIGNMENT設(shè)定復(fù)選框標(biāo)題位置AllowGrayed屬性該屬性為布爾型,它確定復(fù)選框是否可具有兩個(gè)或三個(gè)狀態(tài)。默認(rèn)值為Falsa就是單擊復(fù)選框可以選定及不選定該組件;AllowGrayed屬性的值為True,單擊復(fù)選框可以選定、不選定或變灰該組件。Checked屬性該屬性確定了一個(gè)選項(xiàng)是否被選定。該選項(xiàng)為一布爾型,當(dāng)為True時(shí),復(fù)選框中出現(xiàn)復(fù)選標(biāo)記,表示選項(xiàng)選定;當(dāng)為False時(shí),沒(méi)有復(fù)選標(biāo)記時(shí),表示選項(xiàng)沒(méi)有選定。若State屬性的值為cbGrayed(復(fù)選框變灰)或cbUnChecked(復(fù)選框未選定),則Checked屬性的值為False。State屬性State屬性確定復(fù)選框可能有的各種狀態(tài)。typeTCheckBoxState=(cbUnchecked,cbChecked,cbGrayed);propertyState:TCheckBoxState;ValueMeaningcbUncheckeThecheckboxhasnocheckmark,indicatingthattheuserdhasnotselectedtheoption.cbCheckedThecheckboxhasacheckmarkinit,indicatingthattheuserhasselectedtheoption.cbGrayedThecheckboxhasacheckmarkinit,butitisgrayed.2.復(fù)選框組件的事件與復(fù)選框組件有關(guān)的主要事件有單擊事件(OnClick)與雙擊事件(OnDblClick)、OnEnter、OnExit、OnStartDrag、OnEndDrag等事件。參見p74例11練習(xí):建一個(gè)工程,放置多個(gè)checkbox,并放一個(gè)按扭,點(diǎn)擊按鈕能統(tǒng)計(jì)有多少個(gè)checkbox被選,用showmessage將數(shù)字顯示出來(lái),保存。單選按鈕組件(RadioButton)(參看word表格排序)單選按鈕組件在標(biāo)準(zhǔn)頁(yè)標(biāo)簽上。(提供互斥選項(xiàng),因此通常用于成組實(shí)現(xiàn),可用GROUPBOX或RADIOGROUP實(shí)現(xiàn)單選按鈕組件的屬性Caption屬性:用來(lái)設(shè)置單選按鈕的提示文字。Alignment屬性:用來(lái)決定單選按鈕的標(biāo)題文字出現(xiàn)的位置。Checked屬性:該屬性用于標(biāo)記單選按鈕的狀態(tài)。它確定了一個(gè)選項(xiàng)是否被選定。該選項(xiàng)為一布爾型,其值為True時(shí),單選按鈕中出現(xiàn)黑圓(表示選項(xiàng)選定);其值為False時(shí),單選按鈕中未出現(xiàn)黑圓(表示選項(xiàng)未選定)。單選按鈕組件的事件與單選按鈕組件有關(guān)的主要事件有單擊事件(OnClick)與雙擊事件(OnDblClick)、OnEnter、OnExit、OnStartDrag>OnEndDrag等事件。參見p76例12p78例]3課堂練習(xí):編寫程序,要求:輸入半徑,利用選項(xiàng)按紐,選擇運(yùn)算:面積、計(jì)算周長(zhǎng)等。按照要求編寫程序:新建一個(gè)DELPHIX程,在窗體中添加一個(gè)文本框,名稱為“txtResult”,默認(rèn)顯示的內(nèi)容為空;添加一組單選按鈕,單選按鈕名稱分別為“0皿”、“0況”,顯示內(nèi)容分別為“飛機(jī)”、“火車”;再添加一組單選按鈕,單選按鈕名稱分別為"0p3\"0p4”,顯示內(nèi)容分別為“廣州”、“上?!保惶砑右粋€(gè)按鈕,名稱為“btnShow”,按鈕上顯示“顯示”。在適當(dāng)?shù)氖录^(guò)程中編寫代碼,使得程序運(yùn)行時(shí),當(dāng)點(diǎn)擊按鈕的時(shí)候,程序完成以下功能:根據(jù)選中的單選按鈕,在文本框中顯示“坐什么去哪里”。運(yùn)行程序,查看結(jié)果。單選分組框組件(RadioGroup)單選分組框組件在標(biāo)準(zhǔn)頁(yè)標(biāo)簽上。該組件為包含單選按鈕的分組框,單選分組框簡(jiǎn)單地將單選按鈕成組。主要屬性:CAPTION指示單選組合名稱Items屬性當(dāng)在Items屬性中輸入一行字符串時(shí),一單選按鈕就添加到該組件中。Items屬性中的每一行字符串使一單選按鈕出現(xiàn)在單選分組框中,其字符串就是單選按鈕的標(biāo)題。Itemindex屬性其值確定當(dāng)前選定的單選按鈕。編號(hào)從0開始。默認(rèn)值是T,表示未選中。Columns屬性設(shè)置Columns屬性的值,可使單選按鈕以單列或多列的方式顯示。當(dāng)用戶選定單選分組框中的一單選按鈕時(shí),先前選定的單選按鈕就自動(dòng)變?yōu)椴贿x定。參見p79例14練習(xí):將上面的習(xí)題2用單選分組框組件來(lái)實(shí)現(xiàn)SpeedButton加速按鈕組件加速按鈕組件位于組件面板的Additional標(biāo)簽頁(yè),常常被放在Panel組件上,它可以實(shí)現(xiàn)按鈕類組件的相應(yīng)功能。另外可以將多個(gè)SpeedButton放置在一個(gè)窗口類組件上,例如Panel(面板)、GroupBox(組框),是進(jìn)行工具欄快速設(shè)計(jì)的理想組件。它和Bitbtn組件非常相似,也可以顯示圖像和文本,但通常只顯示圖像,它的特殊屬性如下。ALLOWALLUP用以設(shè)定是否包含此快速鈕的組中是否能同時(shí)保持UP狀態(tài)DOWN用以設(shè)定此快速鈕是否已被選取FLAT用以設(shè)定此快速鈕是否顯示3D邊的效果GROUPINDEX用以設(shè)定快速鈕的分組,同一組同一個(gè)編號(hào)TRANSPARENT用以設(shè)定快速鈕是否透明列表類組件的使用ListBox和ComboBox都用來(lái)顯示列表項(xiàng)目,所不同的是ComboBox占用較少的空間。常見的Windows操作系統(tǒng)中,顯示可用磁盤驅(qū)動(dòng)器時(shí),用的就是ComboBoxListBox則提供了一個(gè)項(xiàng)目列表以供選擇,如Windows打開文件操作時(shí)顯示文件列表的就是ListBoxoTListBox組件組件的常用屬性Items屬性:用來(lái)存放列表框中的列表項(xiàng),屬于TStrings類。Itemindex屬性:用來(lái)設(shè)置或返回選中的列表項(xiàng)的序號(hào),第一個(gè)列表項(xiàng)的序號(hào)值為OoTOPINDEX指示列表框頂端項(xiàng)目的索引值ITEMHEIGHT設(shè)定列表框項(xiàng)目的高度當(dāng)style為Ibstandard時(shí),ITEMHEIGHT的只與item的font相關(guān),程序員不能改變。Integralheight(true自動(dòng)調(diào)整列表框的高度,列表框中的最后一行可完整顯示)(false不自動(dòng)調(diào)整列表框的高度,列表框中的最后一行可能不被完整顯示)Columns屬性:用來(lái)設(shè)置在列表框中顯示列表項(xiàng)的列數(shù)。Columns=0顯示一列,當(dāng)列表框空間不夠時(shí),自動(dòng)加垂直滾動(dòng)條ColumnsOO當(dāng)列表框空間足夠時(shí),一般會(huì)顯示相應(yīng)的列數(shù),當(dāng)不夠時(shí),則自動(dòng)增加水平滾動(dòng)條,顯示多列。Count屬性:運(yùn)行屬性,用來(lái)返回列表框中列表項(xiàng)的數(shù)目。Selected屬性:用來(lái)測(cè)試某個(gè)列表項(xiàng)是否被選中。MultiSelect屬性:用來(lái)設(shè)置能否在列表框中選擇多個(gè)列表項(xiàng),即是否允許多選。ExtendedSelect屬性:只有在MultiSelect屬性值為True時(shí)才起作用,用來(lái)決定列表框是否允許擴(kuò)展多選。SelCount屬性:在MultiSelect屬性值為True時(shí),用來(lái)返回選中的列表項(xiàng)的個(gè)數(shù)。Sorted屬性:用來(lái)設(shè)置列表框中的列表項(xiàng)是否按字母順序排序。STYLE:指示列表框顯示模式(IbStandard,IbOwnerDrawFixed,IbOwnerDrawVariable)CANVAS:提供自定義顯示列表框項(xiàng)目?jī)?nèi)容的畫板,用于ONDRAWITEM事件組件的常用方法Clear方法:作用是清除列表框中的所有列表項(xiàng),無(wú)參數(shù)。ClearSelection方法:作用是清除列表框中所有被選中的選項(xiàng)。SelectAll方法:用來(lái)選中列表框中的所有文本。MoveSelection方法:用來(lái)把列表框中的所有選中的列表項(xiàng)移動(dòng)到另一個(gè)列表框中。CopySelection方法:用來(lái)把列表框中的所有選中的列表項(xiàng)復(fù)制到另一個(gè)列表框中。組件的常用事件TListBox組件響應(yīng)的主要事件有:OnClick、ONDBLCLICK、OnKeyDown、OnKeyPress、OnKeyUp等。參見p82例15,84例161)新建一個(gè)工程,左右兩邊各放置一個(gè)列表框ListBox的控件List1和List2,在List1中豎排顯示內(nèi)容“第一題、第二題、第三題、第四題、第五題”這五項(xiàng)。在兩個(gè)列表框中間豎排四個(gè)命令按鈕,標(biāo)題分別為“V”、“〉”、“VV”、“〉〉”。實(shí)現(xiàn)程序功能:1點(diǎn)擊“v”將Listl中所選中的項(xiàng)添加到List2中,并將Listl中的項(xiàng)刪除。2點(diǎn)擊"〉”將List2中所選中的項(xiàng)添加到Listl中,并將List2中的項(xiàng)刪除。3點(diǎn)擊“VV”將Lixtl中所有的選項(xiàng)添加到List2中,并將Listl中的項(xiàng)清空。4點(diǎn)擊"〉〉”將List2中所有的選項(xiàng)添加到Listl中,并將List2中的項(xiàng)清空。最后保存。2)按照要求編寫程序:新建一個(gè)DELPHI工程,在窗體中添加一個(gè)按鈕,名稱為"Buttoni",按鈕上顯示“添加項(xiàng)目”;添加兩個(gè)列表框,名稱分別為“Listl”和“List2”。在適當(dāng)?shù)氖录^(guò)程中編寫代碼,使得程序運(yùn)行時(shí),當(dāng)點(diǎn)擊按鈕的時(shí)候,程序通過(guò)inputbox函數(shù)讓用戶輸入文本,然后放在第一個(gè)列表框中;當(dāng)用戶雙擊第一個(gè)列表框中的項(xiàng)目的時(shí)候,指定的項(xiàng)目移動(dòng)到第二個(gè)列表框中,反之亦然。程序編寫完畢后,運(yùn)行,查看效果。保存程序.TComboBox組件特有屬性DropDownCount屬性:該屬性用來(lái)設(shè)置組合框的列表框中所能顯示的列表項(xiàng)的最大數(shù)目,默認(rèn)情況下,列表框中可以顯示8個(gè)列表項(xiàng),當(dāng)超過(guò)8個(gè)列表

框時(shí)將顯示出垂直滾動(dòng)條。Style屬性:該屬性用來(lái)設(shè)置或返回組合框的風(fēng)格。Style屬性值說(shuō)明CsDropDown組合框的編輯框中可以輸入,同時(shí)下拉式列表框是一組具有等高度的字符串CsDropDownList組合框的編輯框?yàn)橹蛔x的,而且編輯框中的內(nèi)容只能在從列表框中選擇CsSimple只有一個(gè)編輯框顯示,可以在編輯框中輸入字符串,也可以通過(guò)上、下箭頭鍵改變編輯框中的內(nèi)容CsOwnerDrawFixed組合框由一個(gè)只讀編輯框和條目咼度相等的列表框組成,條目的高度由屬性ItemHeight確定CsOwnerDrawVaria在組合框由一個(gè)只讀編輯框和列表框組成,條目的咼度可ble以不同Droppeddown:用于判定組合框是否處于下拉菜單的狀態(tài)下拉列表框參見p87例17簡(jiǎn)單組合框

參見p88例18英語(yǔ)地」s 數(shù)學(xué)計(jì)算機(jī)4生■物下拉組合框數(shù)學(xué)計(jì)算機(jī)4生■物參見p90例]9練習(xí):1)編寫程序,演示列表框和組合框2個(gè)組件的基本操作。在窗體上建立一個(gè)列表框,一個(gè)命令按鈕。程序運(yùn)行后,在列表框中選擇所需要的項(xiàng)目(可多選),單擊“添加”按鈕,可把所選擇的項(xiàng)目添加到組合框的下拉選單中。2)新建一個(gè)工程,窗體上放置ComboBox和編輯框組件,實(shí)現(xiàn)窗體創(chuàng)建時(shí),讀取系統(tǒng)的漢字字型,在ComboBox列表框中顯示。當(dāng)用戶點(diǎn)擊ComboBox中的列表項(xiàng)時(shí),編輯框的字體會(huì)隨之變化。保存。:二;TTimer時(shí)鐘組件的使用TTimer組件的屬性Enabled屬性:該屬性用來(lái)設(shè)置程序運(yùn)行時(shí)定時(shí)器是否正在運(yùn)行。Interval屬性:該屬性用來(lái)設(shè)置定時(shí)器兩次OnTimer事件發(fā)生的時(shí)間間隔,以毫秒為單位。TTimer組件的事件OnTimer事件:在Enabled屬性值為True時(shí),該事件每隔一定時(shí)間間隔自動(dòng)觸發(fā),觸發(fā)的時(shí)間間隔由Interval屬性指定。設(shè)計(jì)一個(gè)電子表參見p91例20設(shè)計(jì)一個(gè)計(jì)時(shí)器參見p93例21設(shè)計(jì)一個(gè)流動(dòng)字幕板參見p96例22常用的鍵盤事件1.OnKeyDown事件當(dāng)按下鍵盤上的任一個(gè)鍵,如字母鍵、數(shù)字鍵、功能鍵(F1-F12)、Ctrl鍵、Shift鍵或Alt鍵等,都將產(chǎn)生一個(gè)On

溫馨提示

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

評(píng)論

0/150

提交評(píng)論