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

下載本文檔

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

文檔簡(jiǎn)介

1、第三章 Delphi 的窗體與組件 教學(xué)要求:掌握窗體、編輯類(lèi)組件、按鈕類(lèi)控件、列表類(lèi)控件、分組類(lèi)組件、時(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)的含義,與

2、焦點(diǎn)相關(guān)的屬性,應(yīng)用焦點(diǎn)設(shè)計(jì)程序的方法。了解 CreateMessageDialog 函數(shù)的定義與用法、 speedbutton 和文件有關(guān)的控件的屬性、方法 與事件。從本章開(kāi)始,將介紹Delphi編程的一些基本方法。通過(guò)這一部分的學(xué)習(xí),可以了解開(kāi)發(fā) Windows環(huán)境下應(yīng)用程序的一些關(guān)鍵技術(shù),并可以方便、快捷地開(kāi)發(fā)一般的應(yīng)用程序。為了簡(jiǎn)化編程工作,Delphi提供了許多功能強(qiáng)大的函數(shù)和類(lèi)。其中很重要的一部分就是組件類(lèi)。 本章將重點(diǎn)介紹常見(jiàn)組件及其編程應(yīng)用?,F(xiàn)在深入普及的 Windows操作系統(tǒng)中,方便快捷的人機(jī)交互界面主要是通過(guò)窗體和對(duì)話框?qū)崿F(xiàn) 的。在Delphi中,這些窗體和對(duì)話框就是程序

3、設(shè)計(jì)階段的窗體,Delphi的可視化設(shè)計(jì)工作就是在窗體中進(jìn)行的。通常,窗體中會(huì)有 文字輸入、滾動(dòng)條、復(fù)選框、單選框、按鈕等一系列組件,通過(guò)這些直觀易懂的組件,可以方便的實(shí)現(xiàn)多種多樣的功能。在Delphi中,這些運(yùn)行期間出現(xiàn)在窗體和對(duì)話框中的組件稱(chēng)為可視組件 。在窗體中,還可以放置一些運(yùn)行期間非可視的組件,對(duì)應(yīng)其它的TComponent子類(lèi)。這些不可視組件集中地實(shí)現(xiàn)了一些特殊的功能。比如,時(shí)鐘控制等功能。TComponent 組件類(lèi),所有的組件都是由這個(gè)類(lèi)派生來(lái)的。TControl子類(lèi)(可視組件) 可分為兩類(lèi): 窗體組件和圖形組件。窗體組件對(duì)應(yīng) TWinControl子類(lèi),是基于系統(tǒng)窗體的可視組

4、件,具有窗體句柄,可作為輸入焦點(diǎn)或含有其它組件,例如TEdit組件、TPanel組件。圖形組件對(duì)應(yīng) TGraphicControl子類(lèi),沒(méi)有窗體句柄,不可作為輸入焦點(diǎn),也不能含有其它組件,例如Label組件。組件圖形組件比窗體組件使用的資源少,尤其在組件數(shù)量比較多的情況下最好使用圖形組件 組的關(guān)系如圖所示。控件(可枕絹件)(TWinControl 子類(lèi))(TControl 子類(lèi))圖形組件TComponant)(TGraphicCantrol-ft苴他TComponent子類(lèi))窗體和組件的關(guān)系非常密切。窗體就像一個(gè)容器,其中包容了可視組件和非可視組件。窗體和 組件之間除了具有上述的不同點(diǎn)之外,還

5、具有一些相同點(diǎn)。例如,從面向?qū)ο缶幊痰慕嵌葋?lái)看,所 有組件都是TComponent 類(lèi)派生類(lèi)的一個(gè)對(duì)象。窗體類(lèi) (TForm)也是從TComponent類(lèi)派生的, 所以可以將窗體看成一個(gè)特殊的組件 。有些組件也具有窗體的“容器”屬性,也就是在這些組件中可以放置其它組件,通常這些組件 稱(chēng)為容器組件。例如Tpanel組件就是一個(gè)容器組件, 可以在Tpanel組件中放置其他組件。Delphi中的所有組件是在可視組件庫(kù)(Visual Component Library,縮寫(xiě)為VCL )中圭寸裝的??梢暯M件庫(kù)是Delphi中非常重要的一部分,不僅封裝了所有組件對(duì)應(yīng)的類(lèi),還封裝了一些通用的類(lèi)。所有的這些類(lèi)

6、都是由一個(gè)基類(lèi)派生出來(lái)的,也就是TObject類(lèi)。了解可視組件庫(kù)對(duì)于學(xué)習(xí)組件、使用Delphi很有幫助。Delphi中的主要組件欄Stan dard標(biāo)準(zhǔn) Windows組件、框架、菜單等Additio nal一些專(zhuān)用的 Windows組件Win 3232位Windows系統(tǒng)中的公用組件System進(jìn)行系統(tǒng)操作的組件(包括定時(shí)器、多媒體和DDE等)Data Access操作數(shù)據(jù)庫(kù)的組件,如訪問(wèn)數(shù)據(jù)庫(kù)、表格、查詢(xún)和報(bào)表等Data Con trols進(jìn)行數(shù)據(jù)庫(kù)控制的組件BDEBORLAND訪問(wèn)數(shù)據(jù)庫(kù)的組件ADO通過(guò)ActiveX Data Objects訪問(wèn)數(shù)據(jù)庫(kù)的組件In terBase提供與In

7、 terBase直接聯(lián)接的組件MIDAS開(kāi)發(fā)多層數(shù)據(jù)庫(kù)應(yīng)用程序的組件In ternetExpress開(kāi)發(fā)InternetExpress應(yīng)用程序(Web服務(wù)器應(yīng)用程序和客戶(hù)端多層數(shù)據(jù)庫(kù)應(yīng) 用程序)的組件Internet開(kāi)發(fā)Web服務(wù)的應(yīng)用程序FastNet提供In ternet操作的一些組件Decisi on Cube為應(yīng)用程序提供多維數(shù)據(jù)分析的組件DialogsWindows通用對(duì)話框組件Win 3.1提供與Windows 3.1兼容的一些組件Samples一些定制組件的例子Servers通用COM服務(wù)器組件DELPHI組件常見(jiàn)屬性及說(shuō)明屬性說(shuō)明Alig n設(shè)置組件對(duì)齊(相對(duì)于其父容器)Bor

8、derstyle設(shè)置組件邊框形狀Capti on設(shè)置組件標(biāo)題Ctl3d設(shè)置組件邊框是否為 3D模式,若BORDERSTYLE 設(shè)置為BSNONE則此屬性無(wú)效Color設(shè)定組件背景顏色Cursor設(shè)定鼠標(biāo)經(jīng)過(guò)組件時(shí)光標(biāo)所顯示的形狀En abled設(shè)定組件是否能使用,當(dāng)設(shè)為FALSE時(shí)組件會(huì)呈灰色Font設(shè)疋組件內(nèi)文子的子型、子體大小、顏色等Height設(shè)定組件高度Helpc ontent用來(lái)為幫助說(shuō)明文件中的索引值建立關(guān)聯(lián)Left設(shè)定組件與父組件左邊框間的距離Popupme nu設(shè)定鼠標(biāo)右鍵(彈出式)快捷菜單Taborder設(shè)定組件在按下 TAB鍵后焦點(diǎn)(FOCUS )移動(dòng)的順序Tabstop若

9、設(shè)為FALSE,則按TAB鍵后焦點(diǎn)并不會(huì)在此組件上停留Top設(shè)定組件與父組件上邊框間的距離Visible設(shè)定組件是否可見(jiàn),此屬性只在執(zhí)行時(shí)起作用Width設(shè)定組件顯示寬度DELPHI常見(jiàn)事件及說(shuō)明事件說(shuō)明On cha nge當(dāng)組件有所改變時(shí)觸發(fā)的事件On click當(dāng)在此組件上按下鼠標(biāo)左鍵時(shí)觸發(fā)的事件On dblclick當(dāng)在此組件上雙擊鼠標(biāo)左鍵時(shí)觸發(fā)的事件Onen ter當(dāng)焦點(diǎn)進(jìn)入此組件時(shí)觸發(fā)的事件On exit當(dāng)切換到其它組件使該組件失去焦點(diǎn)時(shí)觸發(fā)的事件,但當(dāng)切換到另一窗體或另一應(yīng)用程序時(shí)此事件不會(huì)觸發(fā)On keydow n當(dāng)在擁有焦點(diǎn)的組件上按下某個(gè)鍵時(shí)觸發(fā)的事件,按鍵包括所有的英文、數(shù)

10、字鍵、方向鍵、功能鍵等On keypress當(dāng)在擁有焦點(diǎn)的組件上按下某個(gè)鍵時(shí)觸發(fā)的事件,但按鍵只包括所有的英文、 數(shù)字鍵、TAB、BACKSPACE、ENTER、ESCOn keyup當(dāng)使用者放開(kāi)鍵盤(pán)上的按鍵時(shí)觸發(fā)的事件,按鍵看ONKEYDOWNOnm ousedow n當(dāng)鼠標(biāo)鍵在某個(gè)組件按下時(shí)觸發(fā)的事件(其參數(shù)包括哪個(gè)鼠標(biāo)鍵被按下、是否有特殊鍵(CTRL、ALT、SHIFT )被按下以及鼠標(biāo)當(dāng)前的坐標(biāo))Onm ousemove當(dāng)鼠標(biāo)在組件內(nèi)移動(dòng)時(shí)觸發(fā)的事件Onm ouseup當(dāng)鼠標(biāo)鍵在組件上方放開(kāi)時(shí)所觸發(fā)的事件Onpaint在組件需要被重畫(huà)時(shí)觸發(fā)的事件,此時(shí)可進(jìn)行自定義畫(huà)法1.6窗體介紹窗體

11、是編寫(xiě)Delphi程序的工作底稿區(qū),凡是與用戶(hù)進(jìn)行交互的程序都得使用窗體來(lái)設(shè)計(jì)用戶(hù)界 面。在程序運(yùn)行時(shí),窗體實(shí)際上就是標(biāo)準(zhǔn)的應(yīng)用程序主窗口、對(duì)話框及多文檔界面的主窗口。根據(jù)不同的窗體類(lèi)型,Win dows環(huán)境中的應(yīng)用程序可以分為下面的三類(lèi):單文檔界面(SDI)應(yīng)用程序:這種應(yīng)用程序同時(shí)只能打開(kāi)一個(gè)文檔。例如Windows系統(tǒng)附件中的“畫(huà)圖”程序,只能同時(shí)編輯一個(gè)圖像文件。多文檔界面(MDI)應(yīng)用程序:一般這種應(yīng)用程序具有一個(gè)父窗體和多個(gè)子窗體,可以同時(shí)打開(kāi)多個(gè)文檔,分別在多個(gè)子窗體中顯示。例如常用的word軟件,可以同時(shí)編輯多個(gè)文檔。對(duì)話框應(yīng)用程序:這種應(yīng)用程序的主界面基于一個(gè)對(duì)話框類(lèi)型的窗體

12、。例如Windows系統(tǒng)附件中的“磁盤(pán)掃描”程序。此外,有些應(yīng)用程序在運(yùn)行期間可以總是顯示在桌面的最前端,例如在Windows中按下系統(tǒng)熱鍵Ctrl+Alt+Del,激活的關(guān)閉程序窗體會(huì)一直顯示在其它應(yīng)用程序的窗體之上,除非退出該程序。窗體由標(biāo)題欄、工作區(qū)和邊界組成。1.6.1窗體的屬性窗體的屬性是與其外觀密切相關(guān)的。對(duì)于組件的屬性除必要進(jìn)行設(shè)定的外,一般使用它的默認(rèn)值。1 窗體的位置與大小窗體的位置與大小是由屬性Left、Top、Width、Height、Clie ntWidth、Clie ntHeight、Positi on、Align來(lái)確定的。一般來(lái)說(shuō)前四個(gè)屬性可以定義控件在它們所在的容

13、器組件中的物理位置和大小,在Delphi中的可見(jiàn)組件都有這四個(gè)屬性,而不可見(jiàn)組件沒(méi)有這些屬性。Heigth屬性和Width屬性分別指定窗體的高度和窗體的寬度窗體的左上角相對(duì)于 父容器(屏幕)的坐標(biāo):Top屬性和Left屬性Align屬性用來(lái)設(shè)定窗體相對(duì)與父容器(屏幕)的對(duì)齊方式,該屬性為枚舉類(lèi)型,取值如下取值含義alBotton窗體位于屏幕的下方,寬度為整個(gè)屏幕寬(Width屬性失效),高度為Heigth屬性值alClie nt窗體占據(jù)屏幕的中部,Width與Height屬性失效alLeft窗體位于屏幕的左方,寬度為Width屬性值,高度為整個(gè)屏幕(Heigth屬性失效)alNo neWidt

14、h與Height屬性有效,以及其他屬性有效alRight窗體位于屏幕的右方,寬度為Width屬性值,高度為整個(gè)屏幕(Heigth屬性失效)alTop窗體位于屏幕的上方,寬度為整個(gè)屏幕寬(Width屬性失效),高度為Heigth屬性值Position屬性:在應(yīng)用程序運(yùn)行階段,確定窗口在屏幕上的位置。只有當(dāng)Align屬性為alNone時(shí)才有效,屬性為枚舉類(lèi)型,取值如下:取值含義poDesig ned窗體運(yùn)行時(shí)顯示的位置和大小與設(shè)計(jì)相冋poDefault窗體每次顯示時(shí),與上次比較,往右下角移動(dòng)了一些位置;窗體的高度和寬度由Windows 決定poDefaultPosO nly窗體以設(shè)計(jì)期間的大小顯示

15、,窗體顯示的位置較上次向右下角移動(dòng)了一些。如 果窗體以設(shè)計(jì)時(shí)的大小不可以在屏幕上完全顯示,就移動(dòng)到屏幕的左上角顯示。poDefaultSize Only窗體以設(shè)計(jì)期間的位置顯示,窗體的大小由Win dows決疋poScree nCen ter窗口尺寸由窗體的Height和Width屬性參數(shù)確定,但是窗口位于屏幕的中央poDesktopCe nter窗體以設(shè)計(jì)期間的大小顯示;窗體顯示的位置總在屏幕的中間。2.窗體的名稱(chēng)與標(biāo)題Caption 屬性確定了窗體的標(biāo)題.當(dāng)窗體最小化后,Caption屬性值為圖標(biāo)的文本說(shuō)明。通常,對(duì)于多文檔界面(MDI)應(yīng)用程序,當(dāng)主框架窗體中的子窗體最大化顯示的時(shí)候,應(yīng)

16、用程序的標(biāo)題欄中顯示的內(nèi)容為“ -”;當(dāng)子窗體非最大化窗體顯示的時(shí)候, 主框架窗體中只顯示應(yīng)用程序的名稱(chēng),子窗體有自己的標(biāo)題欄,其中顯示該窗體打開(kāi)的文件名。所 以,當(dāng)窗體的顯示方式發(fā)生了改變后,應(yīng)該立即改變標(biāo)題欄中的內(nèi)容。默認(rèn)情況下 Name屬性與Caption屬性值相同,但不能混淆兩者的作用。 Name屬性是窗體對(duì) 象的變量名,當(dāng)工程中有多個(gè)窗體時(shí), 每個(gè)窗體的名稱(chēng)必須是唯一的, 即其名稱(chēng)不能相同。 屬性Name 用來(lái)標(biāo)志工程中的窗體。通常,應(yīng)該在系統(tǒng) 開(kāi)發(fā)的設(shè)計(jì)階段就將整個(gè)工程中所有窗體的名稱(chēng)確定,然后在編程階段根據(jù) 設(shè)計(jì)文檔修改窗體的 Name屬性。不能在程序運(yùn)行期間通過(guò)代碼修改Name

17、屬性。3.窗體的外觀與風(fēng)格與窗體的外觀與樣式有關(guān)的屬性有 :BorderIcons、Borderstyle、FormStyle、WindowStyle、HorzScrollBar 和 VertScrollBar 屬性等。FormStyle屬性可以分別實(shí)現(xiàn)各種類(lèi)型的應(yīng)用程序,取值如下:取值含義FsNormal普通的窗體fsMDIChildMDI(多文檔窗體)的子窗體fsMDIFormMDI(多文檔窗體)的主窗體fsStayO nTop位于桌面頂層的窗體BorderIco ns屬性用來(lái)指定窗體標(biāo)題欄上的圖標(biāo),該屬性為集合類(lèi)型,取值如下取值含義biSystemMe nu在窗體的標(biāo)題欄中顯示系統(tǒng)菜單b

18、iMi ni mize;在窗體的標(biāo)題欄中顯示最小化按鈕biMaximize在窗體的標(biāo)題欄中顯示最大化按鈕biHelp在窗體的標(biāo)題欄中顯示幫助按鈕,只有窗體的 BorderStyle 屬性設(shè)置為bsDialog 或者窗體屬性 BorderIcons 中不包括 biMinimize 和 biMaximize 時(shí),biHelp設(shè)置才有效。確定窗體的邊界類(lèi)型:BorderStyle屬性,該屬性為枚舉類(lèi)型,取值如下取值含義bsDialog標(biāo)準(zhǔn)對(duì)話框邊框,邊框大小不可以改變。bsS in gle單線框,大小不可以改變bsN one窗體沒(méi)有邊框,也沒(méi)有標(biāo)題欄,邊界的大小不可以改變,邊框不能移動(dòng)。bsSize

19、able邊框可移動(dòng)大小可變的標(biāo)準(zhǔn)窗體bsToolWi ndow風(fēng)格與bsSingle相同,只是標(biāo)題欄比較小。另外,對(duì)于這種風(fēng)格的窗體,屬性 BorderIcons 中設(shè)置的biMinimize 和biMaximize 并不起作用。bsSizeToolWi n風(fēng)格與bsSizeable 相同,只是標(biāo)題欄比較小。對(duì)于這種風(fēng)格的窗體,屬性BorderIcons 中設(shè)置的 biMinimize 和 biMaximze 也不起作用。注意:窗體屬性Borderlcons的設(shè)置與屬性Borderstyle的設(shè)置可能會(huì)發(fā)生互斥, 例如屬性Borderlcons 的 biMinimize 和 biMaximiz

20、e 會(huì)與屬性 Borderstyle 的 bsDialog 沖突,屬性 Borderlcons 的 biHelp 會(huì)與屬 性 BorderStyle 的 bsSizeable 沖突。設(shè)置窗體的顯示狀態(tài):WindowStyle屬性,該屬性為枚舉類(lèi)型,取值如下取值含義wsNormal窗體運(yùn)行時(shí)顯示的位置和大小與設(shè)計(jì)相冋wsMi ni mal窗體運(yùn)行時(shí),最小化wsMaximized窗體運(yùn)仃時(shí),最大化4. Font屬性屬性 Font 用來(lái)設(shè)置窗體中文字的字體、顏色和字號(hào)等,包含 Color、Name、Size 或 Style 等屬性。如果將窗體中組件的 屬性ParentFont設(shè)置為T(mén)rue ,那么該

21、組件的字體設(shè)置就與其父級(jí)窗體的字體設(shè)置完全一樣了。在程序設(shè)計(jì)的時(shí)候,為了保持整個(gè)系統(tǒng)風(fēng)格的統(tǒng)一,應(yīng)該使工程中的窗體風(fēng)格盡量一致,可以 先設(shè)置窗體的Font屬性,然后將窗體中所有組件的ParentFont屬性設(shè)置為T(mén)rue就可以了。一般不要單個(gè)地對(duì)窗體中的組件進(jìn)行Font屬性的設(shè)置。5. Icon屬性屬性Icon用來(lái)指定標(biāo)題欄中顯示的圖標(biāo)。單擊對(duì)象編輯器Icon屬性右邊的省略號(hào)按鈕,在彈出的Picture Editor對(duì)話框中點(diǎn)擊Load.按鈕,就可以裝入一個(gè)制作好的圖標(biāo)。使用Delphi自帶的工具Image Editor 可以方便地制作圖標(biāo)。通過(guò)菜單Tools/ Image Editor 可運(yùn)

22、行Image Editor 編輯制作圖標(biāo)。如果需要?jiǎng)討B(tài)地改變窗體Form1中的圖標(biāo),可以調(diào)用下面的過(guò)程:Form1.Ico n.LoadFromFile(lco n1.ICO);其中Icon 1.ICO 是要在窗體Form1標(biāo)題欄中顯示的圖標(biāo)文件名。1.6.2窗體的事件窗體的事件很多,常用事件:1. Create 事件和 Destroy 事件當(dāng)創(chuàng)建窗體時(shí),就產(chǎn)生Create事件;當(dāng)釋放窗體所占用的空間時(shí),就會(huì)產(chǎn)生Destroy事件。這兩個(gè)事件過(guò)程的基本語(yǔ)法形式為:procedure TForm1.FormCreate(Se nder: TObject);procedure TForm1.For

23、mDestroy(Se nder: TObject);應(yīng)用:通常整個(gè)程序的初始化工作放在主窗體的Create事件中進(jìn)行處理,比如讀入將要用到的圖形資源等,而這些資源的釋放則放在主窗體的Destroy事件中進(jìn)行處理。例如:procedure TForm1.FormCreate(Se nder: TObject);beginforml.Caption:=歡迎使用??;form1.Color:=clred;forml.F on t.Color:=clblue;forml.Font.Name:=隸書(shū);forml.Fo nt.Size:=20;forml.F on t.Style:=fsbold,fs u

24、n derli ne,fsitalic;button1.Caption:=請(qǐng)按鍵;butto n1.Left:=130;butto n1.Top:=500;butto n1.Height:=50;butto n1.Width:=100;en d;當(dāng)創(chuàng)建窗體并顯示時(shí),下列事件按順序出現(xiàn):Create、Show、Paint、Activate。參見(jiàn)表1-142. Show 和 Hide 事件Show事件和Hide事件分別在窗體顯示與隱藏時(shí)被觸發(fā)。當(dāng)窗體的Visible屬性設(shè)置為T(mén)rue時(shí),窗體被顯示,同時(shí)觸發(fā)Show事件;當(dāng)窗體的Visible屬性設(shè)置為False時(shí),窗體被隱藏,同時(shí)觸發(fā)Hide事件

25、。這兩個(gè)事件過(guò)程的基本語(yǔ)法形式為:procedure TForm1.FormShow(Se nder: TObject);procedure TForm1.FormHide(Se nder: TObject);3. Activate 和 Deactivate 事件事件發(fā)生的條件:當(dāng)激活窗體時(shí),就產(chǎn)生Activate事件;當(dāng)窗體不再激活時(shí),就會(huì)產(chǎn)生Deactivate事件。這兩個(gè)事件過(guò)程的基本語(yǔ)法形式為:procedure TForm1.FormActivate(Se nder: TObject);procedure TForm1.FormDeactivate(Se nder: TObject)

26、;4 .關(guān)閉窗體 close 和closequery事件參見(jiàn)表 1-155 .改變窗體大小時(shí) Resize事件和paint事件在調(diào)整窗體的大小時(shí),就會(huì)出現(xiàn)Resize事件。該事件過(guò)程的基本語(yǔ)法形式為:procedure TForm1.FormResize(Sender: TObject);1.6.3窗體的方法參見(jiàn)常見(jiàn)方法列表:p25窗口可以分為模態(tài)顯示和非模態(tài)顯示兩種顯示形態(tài)。采用模態(tài)顯示時(shí) 用ShowModal方法打開(kāi)窗口。打開(kāi)模態(tài)窗口之后,同一程序其他窗口的操作被禁止,直到把模態(tài)窗口關(guān)閉,其它應(yīng)用程序的窗口可以被操作。非模態(tài)顯示的窗口 用Show 方法打開(kāi)。非模態(tài)窗口打開(kāi)后可以不關(guān)閉,然后

27、再去打開(kāi)其他窗口。1.6.4創(chuàng)建新窗體一個(gè)對(duì)象的生命周期是從它被創(chuàng)建那一刻開(kāi)始。當(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)行

28、時(shí),首先顯示出來(lái)的窗體一般稱(chēng)之為主窗體。主窗體一般由應(yīng)用程序自動(dòng)創(chuàng)建。但一個(gè)應(yīng)用程序,一般不會(huì)只有主窗體,其他窗體有兩種不同的創(chuàng)建方式。甌m?i| Apple dimConfTiin- |亡Eipiei| Linkei(Iplxunif f(JK Pi ujeCl I. uxiiDefaulVDK I Cancel I Hefp包括:靜態(tài)創(chuàng)建(自動(dòng)創(chuàng)建)和動(dòng)態(tài)創(chuàng)建(手動(dòng)創(chuàng)建)1. 靜態(tài)創(chuàng)建新窗體的步驟打開(kāi)已有工程文件新建窗體建立主窗體與該窗體的聯(lián)系。引用單元unit2。在進(jìn)行編譯時(shí)系統(tǒng)會(huì)自動(dòng)提示并添加代碼。也可手工在主窗體單元中添加對(duì)unit2的引用代碼。Use unit2保存并運(yùn)行。2. 設(shè)

29、置工程主窗體和自動(dòng)創(chuàng)建與手動(dòng)創(chuàng)建窗體的方法3. 動(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)。選擇菜單 project|options 系統(tǒng)打開(kāi)project options對(duì)話框,在 forms 選項(xiàng)卡中,所有窗提出現(xiàn)在自動(dòng)創(chuàng)建列表框中,選擇不需自動(dòng)創(chuàng)建的窗體,移到“Availableforms ”列表框中。在主調(diào)窗體中修改程序代碼。Form2:=tform2.create( nil);Form2.show;動(dòng)態(tài)創(chuàng)建的窗體在運(yùn)行結(jié)束后,一般應(yīng)手動(dòng)釋放,以釋放其所占用的

30、內(nèi)存空間。釋放窗體的方法一般有兩種的destroy,free。一般用free,兩者在用法上稍有不同,請(qǐng)查閱幫助文檔進(jìn)一步了解。Form2.destroy;Form2.free;或者 form2.Release;作業(yè):1. 設(shè)計(jì)一個(gè)不含系統(tǒng)菜單的窗體,添加一個(gè)按鈕實(shí)現(xiàn)窗體的關(guān)閉。2. 設(shè)計(jì)一個(gè)不能改變大小的窗體。3. 設(shè)計(jì)一個(gè)透明窗體。提示:首先設(shè)置窗體的 TransParentColor - True;4.然后設(shè)置窗體的Color與TransParentColorValue為相同值新建一個(gè)工程,創(chuàng)建三個(gè)窗體butto n1,butto n2兩按鈕,選擇form1,form2,form3 ,將

31、butto n1,以無(wú)模式顯示form1設(shè)為主窗體,在Form2,選擇 button2,form1放置以有模式顯示Form3。5.6.新建一個(gè)工程,創(chuàng)建三個(gè)窗體button1,button2 兩按鈕,form2手動(dòng)創(chuàng)建,選擇 button2,先創(chuàng)建form3,并以有模式顯示 Form3。請(qǐng)編寫(xiě)程序驗(yàn)證窗體Create Show、Pai nt、Activate等事件激活的順序。form1設(shè)為主窗體,在form1,form2,form3 ,將由應(yīng)用程序自動(dòng)創(chuàng)建,選擇button1,以無(wú)模式顯示form1放置Form2,form3窗體組件(FORM )常見(jiàn)屬性屬性說(shuō)明Active指示此窗體是否擁有

32、FOCUSActivec on trol指示窗體中目前擁有 FOCUS的組件Activemdichild指示主窗體中目前擁有 FOCUS的子窗體Activeolec on trol用于取得或設(shè)定此窗體上的 OLE控制,以響應(yīng)FOCUS改變Borderic ons指定哪些ICON顯示在窗體的TITLE BAR上Bordersytle用以指定窗體BORDER外觀及行為Canvas提供使用者可在窗體上CLIENT 內(nèi)自行顯示的畫(huà)板,一般在ONPAINT事件中使用Clie ntha ndle提供可存取系統(tǒng)內(nèi)部使用的MDI CLIENT WINDOW HANDLEClie ntheight窗體客戶(hù)區(qū)高度

33、Clie ntrect窗體客戶(hù)區(qū)所對(duì)應(yīng)的矩形Clie ntwidth窗體客戶(hù)區(qū)寬度Defaultm on itor指定此窗體所顯示的預(yù)設(shè)的顯示器,用于多顯示器環(huán)境下Desig ner此窗體的設(shè)計(jì)界面,一般不用用戶(hù)設(shè)定Droptarget用以指定窗體是否為目前 DRAG AND Drop 動(dòng)作的目標(biāo)Floati ng用以指示此窗體是否正在停泊在另一個(gè)視窗內(nèi)Formstate用于指示此窗體所處狀態(tài)Formstyle用于指示窗體的樣式Helpfile用于指定HELP文件Icon指定窗體最小化時(shí)所顯示的 ICONKeypreview指定此窗體是否需在目前的ACTIVE組件之前取得鍵盤(pán)輸入Mdichil

34、dcou nt用于取得子窗體數(shù)目Mdichildre n用于取得子窗體(數(shù)組)Me nu用于指疋窗體主采單Modalresult當(dāng)窗體作用為 MODAL對(duì)話框時(shí),作為對(duì)話框的效果Mo nitor用于指示窗體所顯示的顯示器Oldcreateorder指定ONCreate 和ONDESTROY 事件何時(shí)發(fā)生Oleformobject對(duì)包含在此窗體內(nèi)的 OLE對(duì)象指定OLEFORM界面Pare nt設(shè)定此窗體的 PARENTPare ntbidimode指定是否此窗體使用 PARENT的BIDIMODEPixelsperi nch表示此窗體設(shè)計(jì)時(shí)系統(tǒng)上字形的比例Positi on表示此窗體的大小及位

35、置Prin tscale表示此窗體打印的比例Scaled用于指定窗體的大小是否依據(jù)PIXELSPERINTCH 屬性來(lái)指定Tilemode用于指定TILE方法被調(diào)用時(shí)子窗體如何排列Visible用于設(shè)定此窗體是否被顯示W(wǎng)in dowme nu如果窗體是一個(gè)MDI PARENT窗體,用于指定視窗的菜單Win dowstate用于指定窗體如何顯示于屏幕中窗體組件(FORM )常見(jiàn)事件及說(shuō)明事件說(shuō)明Onpaint當(dāng)窗體必須重畫(huà)時(shí)發(fā)生On help當(dāng)窗體收到HELP請(qǐng)求時(shí)發(fā)生On dragdrop當(dāng)一個(gè)對(duì)象拉進(jìn)此窗體并丟下時(shí)發(fā)生On dragover當(dāng)一個(gè)對(duì)象拉進(jìn)此窗體時(shí)發(fā)生Oncon stra in

36、 edresize在ONCANRESIZE 事件發(fā)生后發(fā)生Oncan resize當(dāng)企圖改變窗體尺寸時(shí)確認(rèn)是否改變On resize當(dāng)窗體尺寸改變時(shí)發(fā)生On startdock當(dāng)對(duì)象開(kāi)始停泊時(shí)發(fā)生Onenddock當(dāng)對(duì)象停泊結(jié)束時(shí)發(fā)生Onundock當(dāng)窗體解除停泊時(shí)發(fā)生On dockdrop當(dāng)其它窗體停泊到此組件時(shí)發(fā)生On dockover當(dāng)其它窗體向此組件停泊接近時(shí)發(fā)生On getsitei nfo當(dāng)有關(guān)停泊消息傳回此窗體時(shí)發(fā)生On create當(dāng)窗體創(chuàng)建時(shí)發(fā)生On close當(dāng)窗體即將關(guān)閉時(shí)發(fā)生On closequery在窗體即將關(guān)閉時(shí)確認(rèn)是否真的關(guān)閉窗體On destroy當(dāng)窗體釋放時(shí)發(fā)

37、生Onshow當(dāng)窗體顯示時(shí)發(fā)生On hide當(dāng)窗體隱藏時(shí)發(fā)生On activate當(dāng)窗體獲得FOCUS時(shí)發(fā)生On deactivate當(dāng)窗體失去FOCUS時(shí)發(fā)生3.3使用焦點(diǎn)焦點(diǎn)focus就是光標(biāo),當(dāng)對(duì)象具有焦點(diǎn)時(shí),才能響應(yīng)用戶(hù)的操作,焦點(diǎn)就是對(duì)象接受用戶(hù)操作(鼠標(biāo)或鍵盤(pán))的能力。1與焦點(diǎn)相關(guān)的屬性:主要有visibleenabled ,當(dāng)他們都為true時(shí),對(duì)象才能夠獲得焦點(diǎn)。有些控件不具有焦點(diǎn)。?哪些呢?2. 獲得焦點(diǎn)的方法:程序設(shè)計(jì)時(shí),通過(guò)代碼設(shè)定,調(diào)用組件的setfocus 方法,例如:editl.setfocus;程序運(yùn)行中:用戶(hù)操作時(shí)(1)鼠標(biāo)單擊對(duì)象(visible enable

38、d都為true)(2)按Tab鍵或Shift+Tab在當(dāng)前窗體的各對(duì)象之間巡回移動(dòng)焦點(diǎn) (3) 按熱鍵選擇對(duì)象。3. 獲得焦點(diǎn)的順序:TabOrder屬性決定控件的接收焦點(diǎn)的順序。從0開(kāi)始。TabStop屬性決定焦點(diǎn)是否能停在該控件上。 False跳過(guò)該控件。3.1 與輸入輸出有關(guān)的控件Label(標(biāo)簽)一般放在對(duì)象的旁邊,用來(lái)標(biāo)記這些對(duì) 象,從而對(duì)用戶(hù)的操作進(jìn)行提示,也可以用來(lái)顯示信息。 可以在標(biāo)簽中設(shè)置 熱鍵,也即在Caption屬性值段中輸 入含有“&勺字串,當(dāng)用戶(hù)使用“Alt關(guān)鍵字母”時(shí),將自動(dòng) 選中它所指向的對(duì)象。方法是設(shè)置Label部件的 FocusCo ntrol屬性,在值段中,

39、選用與它關(guān)聯(lián)對(duì)象的對(duì) 象名稱(chēng)。3.1.1 Label 控件Label控件在標(biāo)準(zhǔn)(Standard)頁(yè)標(biāo)簽上,主要用于輸 出文本。宇性字待輛伯更文知?dú)g卯.中丈孚亦宇那宇號(hào)西丈手悻(E)下劃卿型叩:口 苦亜去目動(dòng)V航有丈宇田隱違陰影小塑丈寫(xiě)豐母廈)取刪鹹空也畑主剛灼宇壓(A)上標(biāo)陽(yáng)文唱笨丈字血下斥陰文叩將自動(dòng)選中它所指向的對(duì)象這星一種宇佈同時(shí)歎認(rèn)迦;蘇 ;I 眾消 |1 常用屬性Capti on即標(biāo)題屬性,這是 TLabel組件最重要的屬性,用來(lái)設(shè)置該組件中顯示的文本。AutoSize布爾型,用來(lái)決定標(biāo)簽是否自動(dòng)隨文本的長(zhǎng)短而改變大小。WordWrap布爾型,用于設(shè)定組件文本寬于組件寬度時(shí)是否自動(dòng)

40、換行Alig nment枚舉型,用來(lái)決定標(biāo)簽中顯示的文本的對(duì)齊方式。En abled布爾型,用來(lái)決定該組件是否能即響應(yīng)用戶(hù)的操作。Visible布爾型,用來(lái)決定在程序運(yùn)行時(shí)組件是否可見(jiàn)Font該屬性用來(lái)設(shè)置標(biāo)簽組件中顯示的文本字體,是一個(gè)對(duì)象屬性。ShowAccelChar布爾型,用來(lái)確定標(biāo)簽的Caption是否出現(xiàn)表示熱鍵的下劃線。Tran spare nt布爾型,用來(lái)確定標(biāo)簽是否為透明的。2.標(biāo)簽的應(yīng)用例1 :利用標(biāo)簽設(shè)計(jì)并控制文本的投影效果。包括靜態(tài)設(shè)置屬性,動(dòng)態(tài)改變屬性。課堂練習(xí):修改實(shí)驗(yàn)一的登錄窗體,設(shè)計(jì)如圖所示界面,要求兩個(gè)label都采用折行顯示 方式,對(duì)齊方式采用上下、 左右均

41、采用居中對(duì)齊, 且當(dāng)按熱鍵U, P時(shí)編輯框 1,2可分別獲得焦點(diǎn)。3.1.2 Edit 控件Edit、MaskEdit、Memo 部件都是用作接收、顯示用戶(hù)輸入文本的。 它們具有一些相同的屬性。Readonly 在運(yùn)行時(shí)間內(nèi)控制對(duì)象是否可以進(jìn)行Windows的操作,當(dāng)此值 為False時(shí),他們接受用戶(hù)的輸入。MaxLength 可以設(shè)置輸入文本的長(zhǎng)度限制。值為0時(shí),不限制文本長(zhǎng)度。用PasswordChar 屬性可以按照顯示隱蔽密碼的方法顯示用戶(hù)輸入文本,例如,它的值為 “*運(yùn)行時(shí),輸入將用“來(lái)顯示,從而提供了一種安全措施。當(dāng)AutoSelect 屬性為true 時(shí),文本框獲得焦點(diǎn)時(shí),文本被選

42、中,呈高亮度顯示,按鍵操作會(huì)將這些字符刪除,替換成當(dāng)前的鍵盤(pán)輸入。這種設(shè)置為操作將其設(shè)置成False,這提供了方便,用戶(hù)不必每次先刪除原來(lái)的文本;但也可能會(huì)導(dǎo)致誤刪文本。 種替代功能就被取消了。汨:汽曲匕汁 - -:/Align 屬性調(diào)整該對(duì)象在窗口中的對(duì)齊情況,有alNone(無(wú)對(duì)齊指定 卜alBottom(底部對(duì)齊卜alClient(全窗口顯示)等可以選擇;而 Alignment 屬性則決定了文本在框中的對(duì)齊顯示格式。Lines 屬性訪問(wèn)的文本被存儲(chǔ)在一個(gè)TStrings對(duì)象中,按動(dòng)它的省略按鈕,可以通過(guò)對(duì)話框向它增加文本,也可以用程序?qū)@一屬性進(jìn)行操作,以達(dá)到修改或增加備注文本的目的。1

43、. TEdit組件的常用屬性Text代表顯示在編輯框中的文本。ReadO nly該屬性用來(lái)決定編輯框中顯示的文本是否可以修改。PasswordChar用來(lái)決定用戶(hù)輸入的字符是原樣顯示還是以密碼方式顯示。CharCase用來(lái)控制編輯框中文本的大小寫(xiě)。AutoSelect用來(lái)決定當(dāng)編輯框獲得焦點(diǎn)時(shí),是否自動(dòng)選定顯示的文本。 諸輸入帳號(hào)宓幽BorderStyle用來(lái)決定編輯框組件是否有邊框及邊框的樣式。MaxLe ngth用來(lái)決定編輯框中最多能夠輸入或顯示的字符個(gè)數(shù)。SelStart運(yùn)行屬性,用來(lái)設(shè)置或指示選中文本的第一個(gè)字符的位置,文本框 的第一個(gè)字符位置為 0。SelText運(yùn)行屬性,用來(lái)設(shè)置或

44、指示選中的文本。SelLe ngth運(yùn)行屬性,用來(lái)設(shè)置或指示選中文本的長(zhǎng)度。Modified運(yùn)行屬性,用來(lái)指示編輯框內(nèi)容是否發(fā)生了改變。CanUndo用來(lái)指出對(duì)編輯框中顯示內(nèi)容的改變是否能夠撤消。只讀屬性HideSelectio n用來(lái)決定當(dāng)編輯框失去焦點(diǎn)時(shí),選中的文本是否還是以選中的方式提供視覺(jué)提示。例如:如果editl.text為abcdef 下列程序運(yùn)行后,edit1選中的文本是什么呢 ?編輯類(lèi)組件的繼承關(guān)系editl.SetFocus;edit1.SelStart:=1;editl.SelLe ngth:=3;2. TEdit組件的常用方法SetFocus該方法用于為編輯框設(shè)置焦點(diǎn),無(wú)

45、參數(shù)。Clear該方法用來(lái)清除編輯框中的所有文本,無(wú)參數(shù)。ClearSelectio n該方法用來(lái)清除編輯框中選中的文本,無(wú)參數(shù)。SelectAII該方法用來(lái)選中編輯框中的所有文本。Un do該方法用來(lái)撤消在編輯框中最近所做的編輯操作。ClearU ndo該方法用來(lái)清除撤消”緩沖區(qū),從而不能對(duì)以前的操作做撤消操 作,該方法無(wú)參數(shù)。CopyToClipboard該方法用來(lái)把選中的文本復(fù)制到剪貼板上,相當(dāng)于復(fù)制操作。CutToClipboard該方法用來(lái)把選中的文本移動(dòng)到剪貼板上,相當(dāng)于剪切操作。PasteFromClipboard該方法用來(lái)把剪切板上的文本粘貼到插入點(diǎn)處,相當(dāng)于粘貼操作。3. T

46、Edit組件的常用事件OnChange當(dāng)編輯框輸入的text屬性值發(fā)生改變時(shí)將觸發(fā)該事件。On KeyPress當(dāng)用戶(hù)按下鍵盤(pán)上的 ASCII字符鍵時(shí)觸發(fā)該事件。On KeyDow n當(dāng)用戶(hù)按下鍵盤(pán)上的 任何鍵時(shí)都會(huì)觸發(fā)該事件。OnKeyUp當(dāng)用戶(hù)按下任何一個(gè)鍵后再松開(kāi)時(shí)將觸發(fā)該事件。參見(jiàn)p54例題2練習(xí):1. 新建一個(gè)工程,窗體上一個(gè)文本框editl,兩個(gè)按鈕,caption分別為剪切”,恢復(fù)”,運(yùn)行后要求在editl中輸入文本,點(diǎn)“剪切”,把editl中的內(nèi)容剪切掉,點(diǎn)“恢復(fù)”,把editl中的內(nèi)容恢 復(fù)出來(lái)。2. 新建一個(gè)工程,窗體上文本框editl,使用戶(hù)輸入字母一律轉(zhuǎn)換為大寫(xiě)顯示(焦

47、點(diǎn)在最右端),保存。3. 新建一個(gè)工程,實(shí)現(xiàn)功能限制:在editl中只能輸入10個(gè)字母,超過(guò)的在 edit2中顯示。保存。4. 按照要求編寫(xiě)程序:新建一個(gè)工程,在窗體中添加兩個(gè)文本框分別為“Editl “Edit2 ”,默認(rèn)顯示內(nèi)容為空。請(qǐng)?jiān)O(shè)置適當(dāng)?shù)目丶傩?,并編?xiě)適當(dāng)?shù)氖录^(guò)程,使得程序運(yùn)行時(shí),只能在Editl中輸入數(shù)字,且每輸入一個(gè)字符,則顯示一個(gè)“*”,同時(shí)在Edit2中顯示輸入的內(nèi)容。程序中不得使用任何變量。程序編寫(xiě)完畢后,運(yùn)行,查看結(jié)果。5. 新建一個(gè)工程,實(shí)現(xiàn)功能:?jiǎn)螕鬳dit1框時(shí),edit1中的內(nèi)容被全選。保存。6. 按照要求編寫(xiě)程序:新建一個(gè)工程,在窗體中添加一個(gè)文本框“Ed

48、it1 ”。編寫(xiě)適當(dāng)?shù)氖录^(guò)程,使得程序運(yùn)行時(shí),如果單擊窗體,則可以使文本框移動(dòng)到窗體左上角;如果在文本框中輸入信息,則可以使文本框移動(dòng)到窗體右上角。程序中不得使用任何變量,只允許通過(guò)修改屬性的方式移動(dòng) 文本框。程序編寫(xiě)完畢后,運(yùn)行,查看結(jié)果。3.1.3 Memo 控件1. TMemo組件的常用屬性屬性說(shuō)明Caretpos用來(lái)得到光標(biāo)的位置.其中x表示所在列,y表示所在行,從0開(kāi)始計(jì)數(shù)。ScrollBars用來(lái)設(shè)置備注框是否出現(xiàn)滾動(dòng)條以及滾動(dòng)條的種類(lèi)。Lines按行處理文本。Tstrings類(lèi)型,字符串?dāng)?shù)組,序號(hào)從0開(kāi)始。WordWrap用來(lái)決定當(dāng)輸入的文本到達(dá)右邊界時(shí)是否插入軟回車(chē),換到下一

49、行輸入。Wan tReturns為布爾型,它確定在該組件中用戶(hù)輸入的回車(chē)鍵是作為文本的內(nèi)容還是進(jìn)入 窗體中。右 WantReturns為T(mén)rue,則用戶(hù)輸入的回車(chē)鍵作為文本的部分; 若 WantReturns 為False,則用戶(hù)輸入回車(chē)鍵時(shí),激活窗體中的其它在 WantReturns 為False時(shí),要在備注中輸入回車(chē),使用Ctrl+Enter 。WantT abs屬性:該屬性為布爾型,它確定在該組件中是否可使用 Tab鍵。當(dāng)WantTabs 為T(mén)rue可使用。若 WantTabs為T(mén)rue ,則用戶(hù)不能使用 Tab鍵來(lái)選定窗體 上的下一組件。也就是說(shuō)從其它組件中,用戶(hù)可以使用Tab鍵進(jìn)入該

50、組件,但在該組件中使用 Tab鍵不能進(jìn)入其它的組件。Modified運(yùn)行屬性,用來(lái)指示memo內(nèi)容是否發(fā)生了改變。TEXT用于取得組件中文本(字符串)2. TMemo組件的常用方法Add該方法用來(lái)向字符串列表的尾部添加一個(gè)字符串。其語(yǔ)法格式如下: function Add(const S: string): Integer; virtual;Clear該方法用來(lái)清空字符串列表。其語(yǔ)法格式如下:procedure Clear; virtual; abstract;Delete該方法用來(lái)從字符串列表中刪除一個(gè)指定的字符串。其語(yǔ)法格式如下: procedure Delete(I ndex: In t

51、eger); virtual; abstract;In sert用來(lái)向字符串列表中插入一個(gè)字符串。其語(yǔ)法格式如下:procedureInsert( Index: Integer ; const S: string); virtual; abstract;Move該方法用來(lái)在字符串列表中移動(dòng)字符串的位置。其語(yǔ)法格式如下:procedure Move( Curlndex , Newlndex: Integer); virtual;LoadFromFile該方法的作用是用指定的文件填充字符串列表。其語(yǔ)法格式如下:procedure LoadFromFile(c onst FileName: stri

52、 ng); virtual;SaveToFile該方法用來(lái)把字符串列表中的數(shù)據(jù)寫(xiě)到某文件中去。其語(yǔ)法格式如下: procedure SaveToFile(c onst FileName: stri ng); virtual;APPENDMEM O.L INES.APPEND()在末追加一行文本例:memol.Li nes.Add(ssss);/ 在最后增加一行 memol.Li nes.delete (5);/刪除第六行memol.Lines.insert(3,ssss);在第 4 行插入新行memol.Lines.move(2,4); 移動(dòng)第 3 行到第 5 行 參見(jiàn)p57例題33.1.4

53、MaskEdit 控件1. TMaskEdit組件的常用屬性EditMask該字符用于控制輸入數(shù)據(jù)的格式。掩碼字符串的組成:三部分組成,每一部 分由;分隔。主要部分確定數(shù)據(jù)格式,特殊字符及其意義參見(jiàn)p65表3-13。第二部分決定掩碼中的字符串是否作為數(shù)據(jù)的一部分。兩個(gè)取值0表示不作為,1 表示作為。第三部分,指出掩碼中的代表未輸入數(shù)據(jù)的字符。EditText該屬性代表TMaskEdit組件輸入的格式化文本。掩碼編輯框(MaskEdit )是一種特殊的編輯框。使用它可以設(shè)計(jì)出許多復(fù)雜的輸入格式。在選用MaskEdit之后,需要為它設(shè)計(jì)一個(gè)輸入格式。方法如下:首先在窗體上將 MaskEdit選中,

54、在對(duì)象查看器(Object Inspector )中找到EditMask屬性,雙 擊它,彈出一個(gè)如下圖所示的對(duì)話框。對(duì)話框左上角的In put Mask編輯框用于輸入掩碼格式。掩碼格式可以分為三部分,每個(gè)部分之間用分號(hào)“;”分開(kāi),第一部分;第二部分;第三部分如“ !90:90:90;1;_”。下面解釋各輸入格式符的意義:1. 輸入格式的第一部分是掩碼本身,也就是數(shù)據(jù)輸入格式。在這一部分用一些特殊的格式符 來(lái)表示應(yīng)輸入的字符類(lèi)型及格式,如|!IOA9:CII |這樣一串輸入格式掩碼。常用的MaskEdit輸入格式符有:格式符意義l和Ll表示該位置只可 該位置必須是一個(gè)能是一個(gè)字母,可以用光標(biāo)鍵跳過(guò)它,但是不能是其它類(lèi)型的字符。L、字符。a和Aa表示該位置只可

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論