版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
認(rèn)識delphi
一.什么是delphiDelphi是Inprise公司推出的基于對象Pascal語言的新一代面向?qū)ο蟮目梢暬焖賾?yīng)用程序開發(fā)環(huán)境。利用Delphi編程,可以快速、高效地開發(fā)出基于Windows環(huán)境的各類程序,尤其在數(shù)據(jù)庫和網(wǎng)絡(luò)方面,Delphi更是一個(gè)十分理想的軟件開發(fā)平臺。第一講認(rèn)識delphi
理解Delphi1.對象:是相對獨(dú)立的客觀存在的或者相對獨(dú)立的邏輯存在的計(jì)算機(jī)表示2.面向?qū)ο笫呛兔嫦蜻^程相比較而言的3.面向?qū)ο蟮娜齻€(gè)特征:繼承、封裝、多態(tài)*對象:是相對獨(dú)立的客觀存在的或者相對獨(dú)立的邏輯存在的計(jì)算機(jī)表示*面向?qū)ο笫呛兔嫦蜻^程相比較而言的第一講認(rèn)識delphi
可視化的體現(xiàn)1.所見即所得的界面設(shè)計(jì)
2.delphi組件是可視化的對象快速的原因1.可視化;
2.豐富的函數(shù),類庫,組件,數(shù)據(jù)庫組件;
3.開發(fā)工具和向?qū)В?/p>
4.編譯速度最快,語法的高度最一致。第一講認(rèn)識delphi
二.Delphi不是什么1.不是專門的數(shù)據(jù)庫開發(fā)工具*研發(fā)的的背景和目的:
1.windows初步流行,主要開發(fā)工具VC和VB各有所長;
2.數(shù)據(jù)庫開發(fā)的需求急劇增加;3.Delphi=VC功能+VB界面+快速數(shù)據(jù)庫開發(fā).*delphi中沒有專門為數(shù)據(jù)庫操作保留的關(guān)鍵字*有很強(qiáng)數(shù)據(jù)庫能力的原因是使用Delphi后續(xù)開發(fā)的數(shù)據(jù)庫組件第一講認(rèn)識delphi
2.不是專門的界面開發(fā)工具*IDE本身是delphi程序且提供源代碼;*delphi可脫離IDE環(huán)境而獨(dú)立運(yùn)行;例子:programp;{$AppTypeconsole}
beginwriteln('hello');end編譯方法:DCC32*.pas3.Delphi可用于各種通用目的通信,圖形處理,數(shù)值計(jì)算,自動控制等;總結(jié):delphi的語言基礎(chǔ)是objectpascal,在其上構(gòu)建的函數(shù)庫,類庫,控件庫,甚至是IDE本身都不是語言的固有組成部分,而是用delphi語言寫成的第一批工具,這擴(kuò)展了delphi的能力,也驗(yàn)證了delphi的強(qiáng)大功能
delphi組件
DELPHI中最重要的部分是可視化組件庫(VCL),其中一部分是組件,顯示在組件面板上,另一部分是一些通用的類。介紹組件的概念、組件和窗體的關(guān)系、以及一些常用組件的用法一.窗體在Windows操作系統(tǒng)中,人機(jī)交互的界面主要是通過一些窗口和對話框?qū)崿F(xiàn)的。在Delphi中,這些窗口和對話框就是程序設(shè)計(jì)階段的窗體,Delphi的可視化設(shè)計(jì)工作就是在窗體中進(jìn)行的。通常,窗體中會有一些控件,通過這些控件可以實(shí)現(xiàn)多種多樣的功能。在Delphi中,把這些運(yùn)行期間出現(xiàn)在窗口和對話框中的控件稱為可視組件。在窗體中,不僅可以放置控件,還可以放置一些運(yùn)行期間不可視的組件,這些不可視組件集中地實(shí)現(xiàn)了一些特殊的功能。窗體和組件的關(guān)系非常密切。從視覺的角度來看,窗體就像一個(gè)容器,其中包容了可視組件和不可視組件。從程序代碼的角度來看,一個(gè)窗體對應(yīng)一個(gè)源程序文件,其中定義了窗體中所有組件的對象。相同點(diǎn):從面向?qū)ο缶幊痰慕嵌葋砜?,所有組件都是TComponent類派生類的一個(gè)對象。窗體類(TForm)也是從TComponent類派生的,所以可以將窗體看成一個(gè)特殊的組件。窗體屬性●biSystemMenu可以通過點(diǎn)擊標(biāo)題欄左邊的圖標(biāo)或在標(biāo)題欄上單擊鼠標(biāo)右鍵來顯示控制菜單??刂撇藛斡袝r(shí)也稱為系統(tǒng)菜單?!馼iMinimize在標(biāo)題欄右邊顯示最小化按鈕?!馼iMaximize在標(biāo)題欄右邊顯示最大化按鈕?!馼iHelp在標(biāo)題欄右邊顯示幫助按鈕。只有窗體的BorderStyle屬性設(shè)置為bsDialog或者窗體屬性BorderIcons中不包括biMinimize和biMaximize時(shí),biHelp設(shè)置才有效。(1)屬性BorderIcons用來指定窗體標(biāo)題欄上的圖標(biāo),可以設(shè)置為下列數(shù)值:●bsDialog窗體為標(biāo)準(zhǔn)的對話框,邊框大小不可以改變?!馼sSingle窗體具有單線邊框,大小不可以改變?!馼sNone窗體沒有邊框,也沒有標(biāo)題欄,邊界的大小不可以改變?!馼sSizeable邊框大小可變的標(biāo)準(zhǔn)窗體?!馼sToolWindow風(fēng)格與bsSingle相同,只是標(biāo)題欄比較小。另外,對于這種風(fēng)格的窗體,屬性BorderIcons中設(shè)置的biMinimize和biMaximize并不起作用?!馼sSizeToolWin風(fēng)格與bsSizeable相同,只是標(biāo)題欄比較小。對于這種風(fēng)格的窗體,屬性BorderIcons中設(shè)置的biMinimize和biMaximize也不起作用。(2)屬性BorderStyle用來設(shè)置窗體的外觀和邊框,可以指定為下面的數(shù)值:用來指定窗體標(biāo)題欄中的說明文字。通常,對于Windows系統(tǒng)中的多文檔界面(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)容。(3)
Caption屬性屬性Font用來設(shè)置窗體中文字的字體、顏色和字號等。如果將窗體中組件的屬性ParentFont設(shè)置為True,那么該組件的字體設(shè)置就與其父級窗體的字體設(shè)置完全一樣了。所以在程序設(shè)計(jì)的時(shí)候,為了保持整個(gè)系統(tǒng)風(fēng)格的統(tǒng)一,應(yīng)該使工程中的窗體風(fēng)格盡量一致,可以先設(shè)置窗體的Font屬性,然后將窗體中所有組件的ParentFont屬性設(shè)置為True就可以了。一般不要單個(gè)地對窗體中的組件進(jìn)行Font屬性的設(shè)置。(4)
Font屬性通常,應(yīng)該在系統(tǒng)開發(fā)的設(shè)計(jì)階段就將整個(gè)工程中所有窗體的名稱確定,然后在編程階段根據(jù)設(shè)計(jì)文檔修改窗體的Name屬性。一般情況下,不要在程序運(yùn)行期間通過代碼修改Name屬性。(7)Name屬性屬性Name用來標(biāo)志工程中的窗體●poDesigned窗體顯示的位置和大小與設(shè)計(jì)期間的一致?!駊oDefault窗體每次顯示時(shí),與上次比較,往右下角移動了一些位置;窗體的高度和寬度由Windows決定?!駊oDefaultPosOnly窗體以設(shè)計(jì)期間的大小顯示,窗體顯示的位置較上次向右下角移動了一些。如果窗體以設(shè)計(jì)時(shí)的大小不可以在屏幕上完全顯示,就移動到屏幕的左上角顯示?!駊oDefaultSizeOnly窗體以設(shè)計(jì)期間的位置顯示,窗體的大小由Windows決定?!駊oScreenCenter窗體以設(shè)計(jì)期間的大小顯示,窗體顯示的位置總在屏幕的中間??紤]多個(gè)監(jiān)示器時(shí)位置的調(diào)整。●poDesktopCenter窗體以設(shè)計(jì)期間的大小顯示;窗體顯示的位置總在屏幕的中間。不考慮多個(gè)監(jiān)示器時(shí)的調(diào)整。(8)
Position屬性屬性Position用來描述窗體的大小和顯示的位置??梢允窍铝袛?shù)值:●wsNormal窗體以普通狀態(tài)顯示(既不是最大化狀態(tài),也不是最小化狀態(tài))?!駑sMinimized窗體以最小化狀態(tài)顯示●wsMaximized窗體以最大化狀態(tài)顯示(9)
WindowsState屬性屬性WindowsState用來描述窗體顯示的狀態(tài),可以取下面的三個(gè)數(shù)值之一:
二、組件在Delphi編程的過程中,要經(jīng)常使用到組件。通過可視組件,可以在窗體中方便地構(gòu)建與用戶交互的界面。另外一些不可視的組件可以為程序增加許多強(qiáng)大的功能。在Delphi集成開發(fā)環(huán)境的組件欄中,按照功能分類羅列了大量的組件,熟悉它們可以提高開發(fā)程序的進(jìn)度。此外,還可以根據(jù)需要,調(diào)整組件欄中組件的位置,或者在組件欄中添加、刪除組件,還可以為了滿足一些特殊需求而創(chuàng)建新的組件,并把它們添加到組件欄中?!馭tandard:標(biāo)準(zhǔn)Windows控件、框架、菜單等●Additional:一些專用的Windows控件●Win32:32位Windows系統(tǒng)中的公用控件●System:進(jìn)行系統(tǒng)操作的組件(包括定時(shí)器、多媒體和DDE等)●DataAccess:操作數(shù)據(jù)庫的組件,如訪問數(shù)據(jù)庫、表格、查詢和報(bào)表等●DataControls:進(jìn)行數(shù)據(jù)庫控制的組件
ADO通過ActiveXDataObjects訪問數(shù)據(jù)庫的組件●InterBase:提供與InterBase直接聯(lián)接的組件●MIDAS:開發(fā)多層數(shù)據(jù)庫應(yīng)用程序的組件1.組件介紹●InternetExpress:開發(fā)InternetExpress應(yīng)用程序(Web服務(wù)器應(yīng)用程序和客戶端多層數(shù)據(jù)庫應(yīng)用程序)的組件●Internet:開發(fā)Web服務(wù)的應(yīng)用程序●FastNet:提供Internet操作的一些組件
DecisionCube為應(yīng)用程序提供多維數(shù)據(jù)分析的組件●QReport:快速報(bào)表組件●DialogsWindows:通用對話框組件●Win3.1:提供與Windows3.1兼容的一些組件●Samples:一些定制組件的例子●Servers:通用COM服務(wù)器組件向窗體中添加組件
?刪除窗體中的組件。
?調(diào)整組件的大小和位置。
?設(shè)置可視組件的TabOrder。
?組件的鎖定和解鎖。
?設(shè)置窗體中組件的屬性。
?創(chuàng)建組件的事件處理過程。2.在窗體中使用組件在應(yīng)用程序的界面上,往往需要用戶輸入一些文字,或者以一定的格式將文本顯示給用戶,文本組件包括以下的一些組件:3.文本組件(1)Edit組件:可以顯示、編輯單獨(dú)的一行文本(2)Memo組件:可以顯示、編輯多行文本(3)MaskEdit組件:可以顯示、編輯具有指定格式的文本,如6位數(shù)字的郵政編碼、固定格式的電話號碼等(4)RichEdit組件:可以顯示、編輯具有豐富文本格式(RichTextFormat)的文件,如.rtf文件文本組件屬性介紹(1)CharCase屬性可以強(qiáng)迫組件中的文本全部為大寫字母、全部為小寫字母或不強(qiáng)迫改變大小寫。
Edit組件具有CharCase屬性。然而TMemo類與TRichEdit類就沒有CharCase屬性。(2)Text(或Lines)屬性可以在設(shè)計(jì)階段就賦予組件顯示的內(nèi)容。對于Edit組件和MaskEdit組件,在對象編輯器中列舉了Text屬性,對于Memo組件和RichEdit組件卻沒有列舉,而改成了Lines屬性。實(shí)際上Memo組件和RichEdit組件同樣具有Text屬性,可以通過代碼改變Text屬性的值。(3)ReadOnly屬性指定用戶是否可以修改組件中的內(nèi)容。默認(rèn)值為False,即用戶可以修改組件中的內(nèi)容(4)MaxLength屬性限制每一行最多可包含的字符數(shù),默認(rèn)值為零,表示不由應(yīng)用程序來限制每行的字符數(shù),而是由操作系統(tǒng)來確定的。(5)HideSelection屬性設(shè)置當(dāng)組件失去焦點(diǎn)時(shí)是否高亮度顯示選中的文本。(3)ReadOnly屬性指定用戶是否可以修改組件中的內(nèi)容。默認(rèn)值為False,即用戶可以修改組件中的內(nèi)容(4)MaxLength屬性限制每一行最多可包含的字符數(shù),默認(rèn)值為零,表示不由應(yīng)用程序來限制每行的字符數(shù),而是由操作系統(tǒng)來確定的。(5)HideSelection屬性設(shè)置當(dāng)組件失去焦點(diǎn)時(shí)是否高亮度顯示選中的文本。(6).注意事項(xiàng)●AutoSelect屬性可以設(shè)置當(dāng)Edit組件獲得輸入焦點(diǎn)時(shí),是否自動選中所有的文本。●PasswordChar屬性可以將用戶輸入的所有字符以同一個(gè)字符顯示?!馝dit組件最常用的事件(也是默認(rèn)事件)為OnChange,也就是當(dāng)Edit組件中的文本發(fā)生改變的時(shí)候,該事件的處理過程執(zhí)行?!裨谝恍υ捒蛑锌梢砸姷竭@種情況:在一個(gè)編輯框中輸入字符的時(shí)候,另一個(gè)編輯框中的內(nèi)容自動發(fā)生改變。只要在第一個(gè)編輯框的OnChange事件的處理過程中改變第二個(gè)編輯框的Text屬性就可以實(shí)現(xiàn)上述過程。(1)使用Edit注意事項(xiàng)(2)使用Memo注意事項(xiàng)對一些比較長的文本內(nèi)容可以利用Memo組件來顯示、編輯??梢酝ㄟ^Text屬性來存取文本內(nèi)容。可以通過Modified屬性來確定文本內(nèi)容是否發(fā)生了改變。
Memo組件沒有從TCustomEdit類繼承AutoSelect屬性,所以不可以使用該屬性。(3)使用MaskEdit注意事項(xiàng)可以通過EditMask屬性來設(shè)置輸入的格式。單擊EditMask屬性右面的省略號按鈕,將彈出InputMaskEditor對話框,在其中可以方便地設(shè)置需要的輸入要求和格式。通??梢韵仍谟颐娴腟amplesMasks中選擇一項(xiàng),然后在InputMask中進(jìn)行修改。(4)使用RichEdit注意事項(xiàng)如果PlainText屬性設(shè)置為True,則在RichEdit組件中顯示RTF文件的時(shí)候,將格式標(biāo)記以普通文本的方式顯示出來。如果PlainText屬性設(shè)置為False,則根據(jù)RTF文件中的格式設(shè)置來顯示。通常將PlainText屬性設(shè)置為False。通過方法Lines.LoadFromFile和Lines.SaveToFile可以方便地存取RTF文件。4.特殊輸入控件為滾動條組件。如果一個(gè)窗口中的內(nèi)容一次顯示不完,可以通過滾動條瀏覽不同的內(nèi)容。(1)ScrollBar組件:Kind取值可以是:
sbHorizontal滾動條是水平方向的。
sbVertical滾動條是垂直方向的。
Max、Min確定滾動條表示數(shù)值的范圍,類型為Integer。
LargeChange、SmallChange可以設(shè)置滾動條數(shù)值改變的大小。
LargeChange表示滑動按鈕在滾動條上的位置發(fā)生比較大的變化時(shí)的數(shù)值,
SmallChange則表示滑動按鈕在滾動條上的位置發(fā)生比較小的變化時(shí)的數(shù)值。
可以從一個(gè)連續(xù)的范圍內(nèi)選擇一個(gè)數(shù)值(2)ScrollBar組件:Frequency屬性表示每隔幾個(gè)數(shù)值顯示一個(gè)刻度。LineSize屬性與PageSize屬性對應(yīng),表示比較小的變化時(shí)位置的改變。如通過按下↑、↓、←或→等鍵后位置的改變。PageSize屬性表示比較大的變化時(shí)位置的改變。如通過按下PageUp(PgUp)或PageDown(PgDn)等鍵后位置的改變。SliderVisible屬性用來設(shè)置是否顯示滑動按鈕。ThumbLength屬性表示滑動按鈕的寬度(或高度)。TickMask屬性用來指定標(biāo)尺顯示的位置??梢詾橄旅娴娜齻€(gè)數(shù)值:
?tmBottomRight標(biāo)尺的位置的右面(或下面)。
?tmTopLeft標(biāo)尺的位置的左面(或上面)。
?tmBoth在TrackBar組件兩邊都顯示標(biāo)尺。在UpDown組件中通過鼠標(biāo)點(diǎn)擊上下箭頭可以改變相關(guān)聯(lián)的組件(如Edit組件)中的數(shù)值(3)UpDown組件:Assosiate屬性指定與UpDown組件關(guān)聯(lián)的組件,可以通過下拉的組合框進(jìn)行選擇。
Increment屬性指定通過UpDown組件而每次增加或減少的步長。
Orientation屬性確定組件的方向,可以取下面的兩個(gè)值之一:
?udHorizontal水平方向,箭頭左右指向。
?udVertical垂直方向,箭頭上下指向。
Thousand屬性設(shè)置當(dāng)數(shù)值超過999時(shí),是否在千位后顯示一個(gè)逗號。
Wrap屬性可以設(shè)置相關(guān)聯(lián)的組件中的數(shù)值是否循環(huán)變化。如在最大值的時(shí)候,再按上箭頭,則相關(guān)聯(lián)的組件中數(shù)值變?yōu)樽钚≈?。HotKey組件可以在設(shè)計(jì)階段指定熱鍵,也可以在運(yùn)行期間改變(4)HotKey組件:5.按紐組件Button組件為普通的按鈕組件BitBtn組件為圖形按鈕組件SpeedButton組件為加速按鈕組件,可以組成工具欄CheckBox組件為復(fù)選按鈕組件,可以組成多項(xiàng)選擇RadioButton組件為單選按鈕組件,可以在多個(gè)條件中選擇唯一的一個(gè)ToolBar組件為工具欄組件??梢园戳衼砼帕邪粹o或其他組件,同時(shí)自動調(diào)整它們的大小和位置CoolBar組件為一種更靈活的工具欄組件在使用普通按鈕組件的時(shí)候應(yīng)注意:如果某個(gè)按鈕的Default屬性設(shè)置為True,則在該視圖中按下回車鍵(Enter)后,將執(zhí)行該按鈕的OnClick事件的處理過程。對于有些組件如RichEdit等,將不會產(chǎn)生默認(rèn)按鈕的OnClick事件。通常在一個(gè)窗口中只設(shè)置一個(gè)默認(rèn)按鈕。(1)Button組件:在加速按鈕上可以同時(shí)顯示圖形和文字,用法與位圖按鈕很相似。Flat屬性可以使按鈕平面化,和Transparent(透明)屬性共同使用可以實(shí)現(xiàn)多媒體的透明按鈕。特點(diǎn):基本上綜合了前面兩種按鈕的特性,是一種方便的通用按鈕。(2)SpeedButton組件:可以通過Alignment屬性設(shè)置復(fù)選按鈕上文字的位置。如果復(fù)選按鈕為三態(tài)的,也就是可以表達(dá)“選中”、“未選中”和“部分選中”(灰色)的概念時(shí),可以將AllowGrayed屬性設(shè)置為True??梢栽谠O(shè)計(jì)階段就設(shè)置好復(fù)選按鈕的狀態(tài)。通過Checked屬性可以將復(fù)選按鈕設(shè)置為“選中”和“未選中”狀態(tài),通過State屬性可以將復(fù)選按鈕設(shè)置為“選中”、“未選中”或“部分選中”。在同一個(gè)窗體中,盡量將不同的復(fù)選按鈕分組使用,將具有相同性質(zhì)的復(fù)選按鈕放在一起。(3)CheckBox組件:如果自己制作位圖按鈕圖形,可以將位圖保存在.bmp文件中,在設(shè)計(jì)階段就可以通過Glyph屬性將圖形顯示在位圖按鈕上。采用Delphi指定的一組默認(rèn)圖形,可以通過Kind屬性來設(shè)置。具體取值可以為bkCustom、bkOK、bkCancel、bkHelp、bkYes、bkNo、bkClose、bkAbort、bkRetry、bkIgnore和bkAll等,它們分別具有明顯的意義。對于自己制做圖形的位圖按鈕,Kind屬性要設(shè)置為bkCustom。(4)Bitbtn組件:通常在使用單選按鈕時(shí),總是將其進(jìn)行分組。在同一組中,只能同時(shí)選中一個(gè)按鈕,其余按鈕自動取消選中。在實(shí)現(xiàn)單選按鈕的分組時(shí),可以有兩種方法:利用分組框組件(GroupBox)和單選按鈕組件(RadioButton)實(shí)現(xiàn)。首先向窗體中添加分組框,然后向分組框中添加單選按鈕。這樣,同一個(gè)分組框中的單選按鈕就自動成為一組。可以通過RadioButton組件的Checked屬性來確定哪一個(gè)單選按鈕被選中。利用單選按鈕分組框(RadioGroup)實(shí)現(xiàn)。可以通過ItemIndex屬性來確定選中哪一個(gè)單選按鈕。(5)RadioButton組件:5.列表組件ListBox組件可以顯示一系列字符串,用戶可以選中其中的一個(gè)或多個(gè)ComboBox組件為組合框組件。組合框由一個(gè)編輯框和一個(gè)下拉式列表框組成,可以從多個(gè)列表?xiàng)l目中選擇一個(gè)。TreeView組件可以顯示具有樹型層次的數(shù)據(jù)。ListView組件可以顯示一些列表的條目,可以按大圖標(biāo)、小圖標(biāo)、列表或詳細(xì)資料等四種方式顯示。ImageList組件是對位圖進(jìn)行管理的不可視組件。CheckListBox為復(fù)選按鈕列表框組件,在列表框中可以有一列或多列復(fù)選按鈕。DateTimePicker組件可以實(shí)現(xiàn)日期和時(shí)間的快速輸入??梢栽谠O(shè)計(jì)階段改變Items屬性來預(yù)先設(shè)置列表框的內(nèi)容,同時(shí)也可以在運(yùn)行期間通過代碼改變列表框的內(nèi)容。例如:
向列表框中增加條目:
ListBox1.Items.Add(‘增加的新條目’);
刪除當(dāng)前選中的一個(gè)條目:
ListBox1.Items.Delete(ListBox1.ItemIndex);
清除所有的條目:
ListBox1.Clear;如果將ListBox組件的MultiSelect屬性設(shè)置為True,就可以一次選中多個(gè)條目。如果將ListBox組件的Sorted屬性設(shè)置為True,可以自動將列表框中的字符串排序。(1)ListBox組件:
組合框有五種類型,可以通過Style屬性來設(shè)置,
csDropDown:在組合框的編輯框中可以輸入,同時(shí)下拉式列表框是一組具有等高度的字符串
csSimple:在只有一個(gè)編輯框顯示,可以在編輯框中輸入字符串,也可以通過上、下箭頭鍵改變編輯框中的內(nèi)容
csDropDownList在組合框的編輯框?yàn)橹蛔x的,而且編輯框中的內(nèi)容只能在從列表框中選擇
csOwnerDrawFixed在組合框由一個(gè)只讀編輯框和條目高度相等的列表框組成,條目的高度由屬性ItemHeight確定
csOwnerDrawVariable在組合框由一個(gè)只讀編輯框和列表框組成,條目的高度可以不同通過屬性DropDownCount可以改變列表框顯示條目的個(gè)數(shù),默認(rèn)值為8。當(dāng)列表框中的條目大于DropDownCount時(shí),將會在列表框右面自動出現(xiàn)一個(gè)滾動條。(2)ComboBox組件:樹的生成可以在設(shè)計(jì)階段進(jìn)行,也就是改變Items屬性。單擊Items屬性右面的省略號按鈕,在彈出的TreeViewItemsEditor對話框中可以方便地生成一個(gè)樹。一般在樹上的每個(gè)條目前會有一個(gè)小圖標(biāo)。有時(shí)當(dāng)該條目被選中時(shí),會顯示另一個(gè)小圖標(biāo)。在Delphi中,這些小圖標(biāo)由ImageList組件進(jìn)行統(tǒng)一管理,然后在TreeView組件的Images屬性中選擇一個(gè)ImageList組件,接著具體設(shè)置每個(gè)條目的ImageIndex屬性就可以選擇ImageList組件中相應(yīng)的圖標(biāo)了。如果將RightClick屬性設(shè)置為True,則在樹的某個(gè)條目上單擊鼠標(biāo)右鍵,也可以將該條目選中。在程序運(yùn)行期間,可以動態(tài)地改變樹的內(nèi)容??梢酝ㄟ^TreeView組件Items屬性的Add、AddChild、Delete函數(shù)等實(shí)現(xiàn)。通常要編寫TreeView組件的OnChange事件的處理過程,也就是在樹上選擇了不同的條目后,執(zhí)行該事件的處理過程。(3)TreeView組件:在Windows的資源管理器中,采用了ListView組件顯示一定目錄下的文件信息。使用時(shí)候應(yīng)注意:在ListView中也有一些圖標(biāo),添加圖標(biāo)的方法與TreeView組件一樣,也是先定義一個(gè)ImageList組件,再將ListView組件的LargeImages、SmallImages和StateImages等屬性與對應(yīng)的ImageList組件關(guān)聯(lián)。通過對ListView組件的Columns屬性進(jìn)行設(shè)置,可以確定將要顯示的列數(shù),并且可以為每一列指定文字的對齊方式、顯示的寬度、圖標(biāo)索引號等。對ListView組件的Items屬性進(jìn)行設(shè)置,可以向組件中預(yù)先增加一些記錄。通過ViewStyle屬性設(shè)置顯示方式:
vsicon,vslist,vsreport,vssmallicon(4)ListView組件:ImageList組件主要用來對窗體中的圖標(biāo)進(jìn)行管理,統(tǒng)一分配索引號,然后提供給TreeView組件、ListView組件等通常應(yīng)將Masked屬性設(shè)置為True,這樣,圖標(biāo)中的背景框就不顯示出來,只顯示圖標(biāo)中的必要部分;否則,顯示的圖標(biāo)將是一個(gè)矩形圖形,背景色(比如青色)也將顯示出來。(5)ImageList組件:可以通過CheckListBox組件的Items屬性,在設(shè)計(jì)階段添加、修改列表內(nèi)容。在運(yùn)行期間,可以通過下面的代碼對列表內(nèi)容進(jìn)行修改:1)增加一個(gè)新的復(fù)選列表?xiàng)l目:
CheckListBox1.Items.Add(‘復(fù)選列表?xiàng)l目’);2)在索引號為0的復(fù)選列表?xiàng)l目前的方框中顯示一個(gè)勾號:
CheckListBox1.Checked[0]:=True;3)判斷索引號為1的復(fù)選列表?xiàng)l目是否被選中,也就是該條目被高亮度顯示:
if(CheckListBox1.Selected[1])thenShowMessage('條目1被選中’);(6)CheckListBox組件:DateTimePicker組件可以實(shí)現(xiàn)日期或者事件的快速輸入。使用的時(shí)候應(yīng)注意:1)如果Kind屬性設(shè)置為dtkDate,則輸入的是日期;如果Kind屬性設(shè)置為dtkTime,則輸入的是時(shí)間。2)在輸入的是日期的情況下,修改DateFormat屬性可以設(shè)置日期的格式,有兩種格式:
dtLong(長日期型)和dtShort(短日期型)(7)DateTimePicker組件:5.信息反饋組件Label組件上可以顯示一個(gè)只讀的字符串ProgressBar組件為進(jìn)度條組件,可以動態(tài)地顯示一個(gè)過程的進(jìn)度StatusBar組件為狀態(tài)條組件,在其中可以顯示一些說明信息如果一項(xiàng)工作進(jìn)行的時(shí)間超過了幾秒鐘,就需要以一定的方式告訴用戶:程序正在運(yùn)行,系統(tǒng)沒有死機(jī),請等待。進(jìn)度條組件(ProgressBar)可以方便地實(shí)現(xiàn)上述功能通常,我們必須知道整個(gè)工作的量,然后在對話框中或者狀態(tài)條中顯示ProgressBar組件,根據(jù)工作的進(jìn)度,動態(tài)地改變ProgressBar組件的Position屬性。另外,ProgressBar具有Max和Min屬性,用來表示進(jìn)度條所表示的最大值和最小值。通常,Max設(shè)置為100,Min設(shè)置為0,Position屬性的初始值設(shè)置為0。這樣,就將整個(gè)工作分成了100份,每完成1份,就將Position屬性的數(shù)值加1。(1)ProgressBar組件:如果一項(xiàng)工作進(jìn)行的時(shí)間超過了幾秒鐘,就需要以一定的方式告訴用戶:程序正在運(yùn)行,系統(tǒng)沒有死機(jī),請等待。進(jìn)度條組件(ProgressBar)可以方便地實(shí)現(xiàn)上述功能通常,我們必須知道整個(gè)工作的量,然后在對話框中或者狀態(tài)條中顯示ProgressBar組件,根據(jù)工作的進(jìn)度,動態(tài)地改變ProgressBar組件的Position屬性。另外,ProgressBar具有Max和Min屬性,用來表示進(jìn)度條所表示的最大值和最小值。通常,Max設(shè)置為100,Min設(shè)置為0,Position屬性的初始值設(shè)置為0。這樣,就將整個(gè)工作分成了100份,每完成1份,就將Position屬性的數(shù)值加1。(1)ProgressBar組件:
delphi語法基礎(chǔ)
作為一種程序設(shè)計(jì)的語言,ObjectPascal語言具有很多優(yōu)點(diǎn)。數(shù)據(jù)類型豐富,并且支持結(jié)構(gòu)化程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì)。此外,易于閱讀,編譯迅速,并且可以使用多個(gè)單元文件來進(jìn)行模塊化程序設(shè)計(jì)。ObjectPascal語言是在傳統(tǒng)Pascal語言的基礎(chǔ)上發(fā)展擴(kuò)充的,主要體現(xiàn)在面向?qū)ο蟮姆矫?。?
第一個(gè)delphi例子Delphi主界面●標(biāo)題欄:標(biāo)題欄中顯示了當(dāng)前的工程名,標(biāo)題欄位于最上部。●主菜單:通過主菜單可以實(shí)現(xiàn)集成開發(fā)環(huán)境中的絕大部分命令。另外,在程序開發(fā)的過程中,在界面的不同部位點(diǎn)擊鼠標(biāo)右鍵,看看是否會彈出菜單,通過這些彈出菜單能實(shí)現(xiàn)什么新的功能或快捷操作?!窆ぞ邫凇窠M件欄:在利用Delphi開發(fā)應(yīng)用程序的過程中,正確、合理、恰當(dāng)?shù)厥褂媒M件非常重要?!駥ο缶庉嬈?ObjectInspector):對象編輯器的功能是實(shí)現(xiàn)對象(尤其是組件)的屬性設(shè)置,創(chuàng)建事件處理過程并進(jìn)行管理。分為下面的三個(gè)部分:1.簡介(1).對象列表:是一個(gè)組合框,包含了當(dāng)前窗體上的所有組件。(2).屬性頁(Property):屬性頁中列舉了當(dāng)前被選中的對象(比如說組件)的屬性。可以在程序設(shè)計(jì)的過程中直接對這些屬性進(jìn)行修改,也可以在程序運(yùn)行期間通過代碼進(jìn)行修改。(3).事件頁(Event):通常情況下,事件處理過程為空。可以雙擊事件右面的組合框來添加事件的處理過程。如果要共用已存在的事件處理過程,可通過下拉式組合框進(jìn)行選擇。窗體設(shè)計(jì)窗口(Form):窗體就是將來在應(yīng)用程序中顯示的界面。在窗體設(shè)計(jì)窗口中可以添加組件欄中的組件,窗體設(shè)計(jì)窗口的標(biāo)題欄中顯示的是當(dāng)前正在設(shè)計(jì)的窗體的名稱。代碼瀏覽器(CodeExplorer):可以在代碼編輯器中快速地定位,并可以在其中將定義的類完善。代碼編輯器(CodeEditor):代碼編輯器為代碼的輸入和編輯提供了一個(gè)方便的環(huán)境。2.第一個(gè)delphi例子通過一個(gè)簡單的例子說明delphl的可視化和面向?qū)ο?,為學(xué)習(xí)delphi語法準(zhǔn)備.第一步:啟動delphi第二步:創(chuàng)建新應(yīng)用程序第三步:設(shè)計(jì)界面第四步:編寫B(tài)utton1事件響應(yīng)代碼showMessage(‘歡迎進(jìn)入delphi的世界’);Button1.caption:=‘Hell’;Labell.Caption:=‘這是我的第一個(gè)Delphi程序”;第五步:編寫button2的事件代碼Close;第六步:運(yùn)行應(yīng)用程序第七步:查看結(jié)果第八步:退出1.注釋二、基礎(chǔ)語法文檔是軟件的重要組成部分。delphi的注釋有多種方法:{}用于注釋一段文字;
//表示行注釋;
{$..}是特例,表示編譯指令。2.標(biāo)識符Delphi中一些量的名稱:變量、常量、過程、類型、函數(shù)。
標(biāo)識符的定義規(guī)則是:字母開頭;不含空格;最長255;一般只含字母,數(shù)字,下劃線。
名字要有意義,不要用拼音縮寫??梢杂糜⒄Z或全拼。GZ:工資?高中?規(guī)則?廣州?
Delphi不區(qū)分大小寫3.變量是程序代碼中代表一個(gè)內(nèi)存地址的標(biāo)識符,而此地址的內(nèi)容在程序運(yùn)行過程中是可變的.
VarValue,Sum:Integer4.常量被說明為一個(gè)固定的值,在程序運(yùn)行過程中不允許改變
constPi=3.1415name=“quhong”普通常量不分配內(nèi)存地址,表現(xiàn)為代碼中的立即數(shù)3.?dāng)?shù)據(jù)類型
學(xué)習(xí)數(shù)據(jù)類型時(shí)要弄清楚的問題:用處?定義?占多少內(nèi)存?常量怎樣表示?有關(guān)的函數(shù)?
數(shù)據(jù)類型可從多個(gè)角度劃分。我們從使用該類型的角度看,可劃分為整型、實(shí)型、布爾型、枚舉型等;若從是否需要定義的角度看,可分為原始類型和用戶定義類型。
要注意各個(gè)類型間是否可轉(zhuǎn)換及如何實(shí)現(xiàn)轉(zhuǎn)換。比如整數(shù)和實(shí)數(shù)。(1).整型
用處:表達(dá)可數(shù)的數(shù)目;記錄循環(huán)次數(shù)
定義:vara:integer;b,c:int64;
內(nèi)存占用:
常量表示:普通123;十六進(jìn)制$1FE7;
必會函數(shù):Div,Mod,Dec,Inc,StrToInt,(2).實(shí)數(shù)
用處:表示連續(xù)量
定義:varx,y:double;
內(nèi)存占用:
常量表示:34.56;0.23;.23;1.2E-3;
必會函數(shù):FloatToStr,F(xiàn)ormatFloat,Int,F(xiàn)rac,Roundformatfloat('00000.00',x);(3).字符型●基本的字符類型(character)Char,精確分類包括AnsiChar和WideChar兩種。●AnsiChar類型的數(shù)據(jù)具有一個(gè)字節(jié),與擴(kuò)展的ANSI字符集對應(yīng)。WideChar類型的數(shù)據(jù)為雙字節(jié),與Unicode字符集對應(yīng)。Unicode字符集的前256個(gè)字符與ANSI字符集的相同?!裢ㄓ玫淖址愋蜑镃har,與AnsiChar類型相同。建議在獲取字符類型數(shù)據(jù)的字節(jié)數(shù)時(shí)使用SizeOf函數(shù)。
用處:表示單個(gè)字母或數(shù)字
定義:vara:char;constb:char='x';
內(nèi)存占用:
常量表示:'a';單引號本身的表示:'''';chr(39);#39;
必會函數(shù):chr,ord(4).布爾型
用處:表示是或不是
定義:vara:boolean;
內(nèi)存占用:
常量表示:true,false
必會函數(shù):notandor四種:Boolean、ByteBool、WordBool和LongBool。其中Boolean和ByteBool為單字節(jié),WordBool為雙字節(jié),LongBool為四字節(jié)。對象Pascal語言預(yù)定義了兩個(gè)常量標(biāo)識符False和True,可以為Boolean類型的數(shù)據(jù)賦值為False或True,對應(yīng)的序數(shù)值為0和1。當(dāng)ByteBool、WordBool和LongBool類型的數(shù)據(jù)為0時(shí),可以認(rèn)為是False;當(dāng)不為0時(shí),可以認(rèn)為是True。(5).枚舉型
用處:代表有限集合中的每一個(gè)元素,為每個(gè)元素指定一個(gè)有意義的名字。
定義:typeTV_Color=(TV_red,TV_Blue,TV_Green);vara:TV_Color;
內(nèi)存占用:相當(dāng)于常量,無內(nèi)存地址
常量表示:TV_red,TV_Blue。
必會函數(shù):ord取得序號;序號從零開始。例如:typeSuit=(Club,Diamond,Heart,Spade);//類型定義varSuit1:Suit;//變量聲明其中Club、Diamond、Heart和Spade的序數(shù)值分別為0、1、2和3。(6).字界型
用處:限定范圍的字符類型或整型(序數(shù)類型),可在編譯階段檢查賦值合法性。
定義:typeAge=1..200;vara:Age;
內(nèi)存占用:與它使用的序數(shù)類型相同。例如定義了一個(gè)表示顏色的枚舉類型:typeTColors=(Red,Blue,Green,Yellow,Orange,Purple,White,Black);接著就可以定義一個(gè)子界類型如下:typeTMyColors=Green..White;其中TMyColors包括了Green、Yellow、Orange、Purple和White。(7).記錄
用處:把許多量組合在一個(gè)類型中
定義:
typeSTU=recordname:string[10];id:integer;age:double;end;vara:STU;
內(nèi)存占用:基本上等于組成的變量所占內(nèi)存的和(存在整字對齊問)
引用:edit1.text:=;a.age:=15.5;
注意:元素可以是任何類型,甚至是另一個(gè)記錄類型;可以用packed指定不要整字對齊。(8).?dāng)?shù)組
用處:表示同型元素構(gòu)成的列表
定義:typeAAA=array[0..100]ofchar;BBB=array[5..10]ofSTU;vara:AAA;
內(nèi)存占用:數(shù)組大小乘單個(gè)元素的占用。
引用:a[下標(biāo)];如a[2],a[34]
必會函數(shù):Low,High。(9).字符串
delphi的串有短串和長串之分。一般短串在棧中分配空間,長串在堆中分配空間。短串最大長度是255,與C的串占用空間相同,結(jié)構(gòu)有區(qū)別。在堆上分配的長串,是自動堆對象,不需要手動地申請和釋放。
定義:vars:string;{長串}
s2:string[12];{短串}
可以用下標(biāo)的方法引用串中的單個(gè)字母:s:=‘hello’;則s[1]表示‘h’;
必會的內(nèi)部函數(shù):length(s);s1:=copy(s,1,2);delete(s,3,2);insert('abc',s,2);i:=Pos('abc',s);s:=LowerCase(s);upperCase;4.運(yùn)算符
對象Pascal語言中的運(yùn)算符(Operators)有:@、not、^、*、/、div、mod、and、shl、shr、as、+、-、or、xor、=、>、<、<>、<=、>=、in和is等運(yùn)算符分為下面兩類:單目運(yùn)算符和雙目運(yùn)算符。上面的@、not和^為單目運(yùn)算符,其余的為雙目運(yùn)算符。其中+和-也可以作為單目運(yùn)算符來使用。注:只有^可以放在操作對象的后面(1).運(yùn)算符優(yōu)先級第一級(最高):@、not第二級:*、/、div、mod、and、shl、shr、as第三級:+、-、or、xor第四級(最低):=、<>、<、>、<=、>=、in、is(2).算術(shù)運(yùn)算符:算術(shù)運(yùn)算符對浮點(diǎn)數(shù)和整數(shù)進(jìn)行加、減、乘、除和取模運(yùn)算(3).邏輯運(yùn)算符:
對邏輯類型的操作數(shù)進(jìn)行運(yùn)算,數(shù)據(jù)結(jié)果也為邏輯類型(4).位運(yùn)算符:
對整型的數(shù)據(jù)進(jìn)行按位操作,所得結(jié)果也為整型數(shù)據(jù)(5).集合運(yùn)算符:對兩個(gè)集合進(jìn)行操作,判斷兩個(gè)集合之間的關(guān)系(6).關(guān)系運(yùn)算符:對兩個(gè)普通數(shù)據(jù)類型、類、對象、接口類型或字符串類型的數(shù)據(jù)進(jìn)行比較,結(jié)果數(shù)據(jù)類型為布爾類型5.語句
●利用保留字var可以聲明已存在數(shù)據(jù)類型的變量,例如:
var
X,Y:Integer;
M:MyType;(1).聲名語句:主要實(shí)現(xiàn)對標(biāo)號、常量、數(shù)據(jù)類型、變量、過程、函數(shù)、過程和函數(shù)的輸出等進(jìn)行聲明?!癯A康穆暶鳎?/p>
constPI=3.1415926535897932385;等號右邊可以使用一些預(yù)定義的函數(shù)?!裨诨緮?shù)據(jù)類型的基礎(chǔ)上,還可以利用保留字type自定義一些數(shù)據(jù)類型,例如typeMyType=Array[1..100]ofreal;(2).賦值語句:形式如下:
variable:=expressionDone:=(I>=1)and(I<100);//將邏輯表達(dá)式的結(jié)果賦值為一個(gè)變量
Hue1:=[Blue,Succ(C)];//將一個(gè)子集賦值為一個(gè)變量
I:=Sqr(J)-I*K;//將一個(gè)表達(dá)式的結(jié)果賦值為一個(gè)變量
Shortint(MyChar):=122;//給類型轉(zhuǎn)換后的變量賦值
MyString[I]:=‘A’;//給數(shù)組的一個(gè)元素賦值TMyObject.SomeProperty:=True;//給對象的屬性賦值(3).復(fù)合語句:首尾使用begin和end括起來一組語句稱為復(fù)合語句。復(fù)合語句可以嵌套使用,也允許空的復(fù)合語句出現(xiàn),也就是在begin和end之間沒有其他語句。
例如:
begin
Z:=X;X:=Y;
Y:=Z;
begin
end;
end;(4).with語句:在使用記錄類型的變量時(shí),可以通過with語句指定一些語句都是針對某一個(gè)變量來說的,這樣可以簡化代碼的輸入量。形式如下:
withobjdostatement注:如果with語句指定的某個(gè)變量具有某個(gè)字段,另一個(gè)變量也具有該字段,則在with語句中對不指明變量的該字段來說,所有的操作都是針對with語句指定的變量來進(jìn)行的。如果要對其他變量的該字段進(jìn)行操作,要在with語句中指明變量名。(5).IF語句:if語句主要實(shí)現(xiàn)了判斷的功能。具體形式如下:
ifexpressionthenstatement或者
ifexpressionthenstatement1elsestatement2注意:在第二種情況下,語句statement1的最后不需要分號“;”。如果statement1是一個(gè)復(fù)合語句,則該復(fù)合語句的end后面也不需要分號。s(6).CASE語句:case語句對一個(gè)結(jié)果的多個(gè)分支進(jìn)行判斷,具體形式如下:
caseselectorExpressionof
caseList1:statement1;
...
caseListn:statementn;
else
statement;如果selectorExpression的數(shù)值等于caseList1,則執(zhí)行statement1語句,執(zhí)行完畢后就退出case語句。如果selectorExpression的數(shù)值不等于caseList1,則依次向下判斷。如果所有羅列出來的數(shù)值都不滿足,就執(zhí)行else語句后面的statement語句。else及其后面的statement語句可以不要。(7).REPEAT語句:repeat語句可以實(shí)現(xiàn)循環(huán)操作的功能。具體形式如下:
repeat
statement1;
...;
statementn;
untilexpression在表達(dá)式expression為True之前,循環(huán)執(zhí)行語句statement1到statementn。例:
Project1;
varI:Integer;
begin
I:=1;
repeat//repeat語句開始行
writeln(I);
I:=I+1;
untilI=100;//repeat語句結(jié)束行
end.(8).WHILE語句:while語句也可以實(shí)現(xiàn)循環(huán)操作的功能。具體形式如下:
whileexpressiondostatement
在表達(dá)式expression為False之前,循環(huán)執(zhí)行語句statement。例:
whileI<=100do//while語句開始行
begin
writeln(I);
I:=I+1;
end;//while語句結(jié)束行(9).FOR語句:for語句可以實(shí)現(xiàn)循環(huán)操作的功能。形式如下:
forcounter:=initialValuetofinalValuedostatement或者:forcounter:=initialValuedowntofinalValuedostatement其中counter為一個(gè)有序類型的數(shù)據(jù),initialValue為counter的初始值。在第一種形式中,使用的是保留字to,counter則從初始值initialValue開始逐一增加到finalValue;在第二種形式中,使用的是保留字downto,counter則從初始值initialValue開始逐一遞減到finalValue。每次執(zhí)行一次statement語句。(10).TRYEXCEPT語句:在try...except語句中可以進(jìn)行拋出異常和處理異常的工作。一般形式如下:
try
Statements1;
except
Exceptionblock;
end;Try后面到Except之前的語句通常是希望正常執(zhí)行的代碼,執(zhí)行時(shí)如果觸發(fā)了異常,程序就跳入Except部分。(11).TRY…FINALLY語句:在try...Finally語句主要用于在發(fā)生異常的情況下確保釋放應(yīng)用程序已分配的資源。一般形式如下:
try
Statementlist1;
Finally
statementlist2;
end;例如:
Reset(F);
try
...//對文件進(jìn)行操作
finally
CloseFile(F);//關(guān)閉文件
end;
delphi組件
DELPHI中最重要的部分是可視化組件庫(VCL),其中一部分是組件,顯示在組件面板上,另一部分是一些通用的類。介紹組件的概念、組件和窗體的關(guān)系、以及一些常用組件的用法一.窗體在Windows操作系統(tǒng)中,人機(jī)交互的界面主要是通過一些窗口和對話框?qū)崿F(xiàn)的。在Delphi中,這些窗口和對話框就是程序設(shè)計(jì)階段的窗體,Delphi的可視化設(shè)計(jì)工作就是在窗體中進(jìn)行的。通常,窗體中會有一些控件,通過這些控件可以實(shí)現(xiàn)多種多樣的功能。在Delphi中,把這些運(yùn)行期間出現(xiàn)在窗口和對話框中的控件稱為可視組件。在窗體中,不僅可以放置控件,還可以放置一些運(yùn)行期間不可視的組件,這些不可視組件集中地實(shí)現(xiàn)了一些特殊的功能。窗體和組件的關(guān)系非常密切。從視覺的角度來看,窗體就像一個(gè)容器,其中包容了可視組件和不可視組件。從程序代碼的角度來看,一個(gè)窗體對應(yīng)一個(gè)源程序文件,其中定義了窗體中所有組件的對象。相同點(diǎn):從面向?qū)ο缶幊痰慕嵌葋砜?,所有組件都是TComponent類派生類的一個(gè)對象。窗體類(TForm)也是從TComponent類派生的,所以可以將窗體看成一個(gè)特殊的組件。窗體屬性●biSystemMenu可以通過點(diǎn)擊標(biāo)題欄左邊的圖標(biāo)或在標(biāo)題欄上單擊鼠標(biāo)右鍵來顯示控制菜單??刂撇藛斡袝r(shí)也稱為系統(tǒng)菜單。●biMinimize在標(biāo)題欄右邊顯示最小化按鈕?!馼iMaximize在標(biāo)題欄右邊顯示最大化按鈕?!馼iHelp在標(biāo)題欄右邊顯示幫助按鈕。只有窗體的BorderStyle屬性設(shè)置為bsDialog或者窗體屬性BorderIcons中不包括biMinimize和biMaximize時(shí),biHelp設(shè)置才有效。(1)屬性BorderIcons用來指定窗體標(biāo)題欄上的圖標(biāo),可以設(shè)置為下列數(shù)值:●bsDialog窗體為標(biāo)準(zhǔn)的對話框,邊框大小不可以改變?!馼sSingle窗體具有單線邊框,大小不可以改變?!馼sNone窗體沒有邊框,也沒有標(biāo)題欄,邊界的大小不可以改變?!馼sSizeable邊框大小可變的標(biāo)準(zhǔn)窗體?!馼sToolWindow風(fēng)格與bsSingle相同,只是標(biāo)題欄比較小。另外,對于這種風(fēng)格的窗體,屬性BorderIcons中設(shè)置的biMinimize和biMaximize并不起作用?!馼sSizeToolWin風(fēng)格與bsSizeable相同,只是標(biāo)題欄比較小。對于這種風(fēng)格的窗體,屬性BorderIcons中設(shè)置的biMinimize和biMaximize也不起作用。(2)屬性BorderStyle用來設(shè)置窗體的外觀和邊框,可以指定為下面的數(shù)值:用來指定窗體標(biāo)題欄中的說明文字。通常,對于Windows系統(tǒng)中的多文檔界面(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)容。(3)
Caption屬性屬性Font用來設(shè)置窗體中文字的字體、顏色和字號等。如果將窗體中組件的屬性ParentFont設(shè)置為True,那么該組件的字體設(shè)置就與其父級窗體的字體設(shè)置完全一樣了。所以在程序設(shè)計(jì)的時(shí)候,為了保持整個(gè)系統(tǒng)風(fēng)格的統(tǒng)一,應(yīng)該使工程中的窗體風(fēng)格盡量一致,可以先設(shè)置窗體的Font屬性,然后將窗體中所有組件的ParentFont屬性設(shè)置為True就可以了。一般不要單個(gè)地對窗體中的組件進(jìn)行Font屬性的設(shè)置。(4)
Font屬性通常,應(yīng)該在系統(tǒng)開發(fā)的設(shè)計(jì)階段就將整個(gè)工程中所有窗體的名稱確定,然后在編程階段根據(jù)設(shè)計(jì)文檔修改窗體的Name屬性。一般情況下,不要在程序運(yùn)行期間通過代碼修改Name屬性。(7)Name屬性屬性Name用來標(biāo)志工程中的窗體●poDesigned窗體顯示的位置和大小與設(shè)計(jì)期間的一致。●poDefault窗體每次顯示時(shí),與上次比較,往右下角移動了一些位置;窗體的高度和寬度由Windows決定?!駊oDefaultPosOnly窗體以設(shè)計(jì)期間的大小顯示,窗體顯示的位置較上次向右下角移動了一些。如果窗體以設(shè)計(jì)時(shí)的大小不可以在屏幕上完全顯示,就移動到屏幕的左上角顯示?!駊oDefaultSizeOnly窗體以設(shè)計(jì)期間的位置顯示,窗體的大小由Windows決定?!駊oScreenCenter窗體以設(shè)計(jì)期間的大小顯示,窗體顯示的位置總在屏幕的中間??紤]多個(gè)監(jiān)示器時(shí)位置的調(diào)整?!駊oDesktopCenter窗體以設(shè)計(jì)期間的大小顯示;窗體顯示的位置總在屏幕的中間。不考慮多個(gè)監(jiān)示器時(shí)的調(diào)整。(8)
Position屬性屬性Position用來描述窗體的大小和顯示的位置。可以是下列數(shù)值:●wsNormal窗體以普通狀態(tài)顯示(既不是最大化狀態(tài),也不是最小化狀態(tài))?!駑sMinimized窗體以最小化狀態(tài)顯示●wsMaximized窗體以最大化狀態(tài)顯示(9)
WindowsState屬性屬性WindowsState用來描述窗體顯示的狀態(tài),可以取下面的三個(gè)數(shù)值之一:
二、組件在Delphi編程的過程中,要經(jīng)常使用到組件。通過可視組件,可以在窗體中方便地構(gòu)建與用戶交互的界面。另外一些不可視的組件可以為程序增加許多強(qiáng)大的功能。在Delphi集成開發(fā)環(huán)境的組件欄中,按照功能分類羅列了大量的組件,熟悉它們可以提高開發(fā)程序的進(jìn)度。此外,還可以根據(jù)需要,調(diào)整組件欄中組件的位置,或者在組件欄中添加、刪除組件,還可以為了滿足一些特殊需求而創(chuàng)建新的組件,并把它們添加到組件欄中。●Standard:標(biāo)準(zhǔn)Windows控件、框架、菜單等●Additional:一些專用的Windows控件●Win32:32位Windows系統(tǒng)中的公用控件●System:進(jìn)行系統(tǒng)操作的組件(包括定時(shí)器、多媒體和DDE等)●DataAccess:操作數(shù)據(jù)庫的組件,如訪問數(shù)據(jù)庫、表格、查詢和報(bào)表等●DataControls:進(jìn)行數(shù)據(jù)庫控制的組件
ADO通過ActiveXDataObjects訪問數(shù)據(jù)庫的組件●InterBase:提供與InterBase直接聯(lián)接的組件●MIDAS:開發(fā)多層數(shù)據(jù)庫應(yīng)用程序的組件1.組件介紹●InternetExpress:開發(fā)InternetExpress應(yīng)用程序(Web服務(wù)器應(yīng)用程序和客戶端多層數(shù)據(jù)庫應(yīng)用程序)的組件●Internet:開發(fā)Web服務(wù)的應(yīng)用程序●FastNet:提供Internet操作的一些組件
DecisionCube為應(yīng)用程序提供多維數(shù)據(jù)分析的組件●QReport:快速報(bào)表組件●DialogsWindows:通用對話框組件●Win3.1:提供與Windows3.1兼容的一些組件●Samples:一些定制組件的例子●Servers:通用COM服務(wù)器組件向窗體中添加組件
?刪除窗體中的組件。
?調(diào)整組件的大小和位置。
?設(shè)置可視組件的TabOrder。
?組件的鎖定和解鎖。
?設(shè)置窗體中組件的屬性。
?創(chuàng)建組件的事件處理過程。2.在窗體中使用組件在應(yīng)用程序的界面上,往往需要用戶輸入一些文字,或者以一定的格式將文本顯示給用戶,文本組件包括以下的一些組件:3.文本組件(1)Edit組件:可以顯示、編輯單獨(dú)的一行文本(2)Memo組件:可以顯示、編輯多行文本(3)MaskEdit組件:可以顯示、編輯具有指定格式的文本,如6位數(shù)字的郵政編碼、固定格式的電話號碼等(4)RichEdit組件:可以顯示、編輯具有豐富文本格式(RichTextFormat)的文件,如.rtf文件文本組件屬性介紹(1)CharCase屬性可以強(qiáng)迫組件中的文本全部為大寫字母、全部為小寫字母或不強(qiáng)迫改變大小寫。
Edit組件具有CharCase屬性。然而TMemo類與TRichEdit類就沒有CharCase屬性。(2)Text(或Lines)屬性可以在設(shè)計(jì)階段就賦予組件顯示的內(nèi)容。對于Edit組件和MaskEdit組件,在對象編輯器中列舉了Text屬性,對于Memo組件和RichEdit組件卻沒有列舉,而改成了Lines屬性。實(shí)際上Memo組件和RichEdit組件同樣具有Text屬性,可以通過代碼改變Text屬性的值。(3)ReadOnly屬性指定用戶是否可以修改組件中的內(nèi)容。默認(rèn)值為False,即用戶可以修改組件中的內(nèi)容(4)MaxLength屬性限制每一行最多可包含的字符數(shù),默認(rèn)值為零,表示不由應(yīng)用程序來限制每行的字符數(shù),而是由操作系統(tǒng)來確定的。(5)HideSelection屬性設(shè)置當(dāng)組件失去焦點(diǎn)時(shí)是否高亮度顯示選中的文本。(3)ReadOnly屬性指定用戶是否可以修改組件中的內(nèi)容。默認(rèn)值為False,即用戶可以修改組件中的內(nèi)容(4)MaxLength屬性限制每一行最多可包含的字符數(shù),默認(rèn)值為零,表示不由應(yīng)用程序來限制每行的字符數(shù),而是由操作系統(tǒng)來確定的。(5)HideSelection屬性設(shè)置當(dāng)組件失去焦點(diǎn)時(shí)是否高亮度顯示選中的文本。(6).注意事項(xiàng)●AutoSelect屬性可以設(shè)置當(dāng)Edit組件獲得輸入焦點(diǎn)時(shí),是否自動選中所有的文本。●PasswordChar屬性可以將用戶輸入的所有字符以同一個(gè)字符顯示?!馝dit組件最常用的事件(也是默認(rèn)事件)為OnChange,也就是當(dāng)Edit組件中的文本發(fā)生改變的時(shí)候,該事件的處理過程執(zhí)行。●在一些對話框中可以見到這種情況:在一個(gè)編輯框中輸入字符的時(shí)候,另一個(gè)編輯框中的內(nèi)容自動發(fā)生改變。只要在第一個(gè)編輯框的OnChange事件的處理過程中改變第二個(gè)編輯框的Text屬性就可以實(shí)現(xiàn)上述過程。(1)使用Edit注意事項(xiàng)(2)使用Memo注意事項(xiàng)對一些比較長的文本內(nèi)容可以利用Memo組件來顯示、編輯。可以通過Text屬性來存取文本內(nèi)容??梢酝ㄟ^Modified屬性來確定文本內(nèi)容是否發(fā)生了改變。
Memo組件沒有從TCustomEdit類繼承AutoSelect屬性,所以不可以使用該屬性。(3)使用MaskEdit注意事項(xiàng)可以通過EditMask屬性來設(shè)置輸入的格式。單擊EditMask屬性右面的省略號按鈕,將彈出InputMaskEditor對話框,在其中可以方便地設(shè)置需要的輸入要求和格式。通常可以先在右面的SamplesMasks中選擇一項(xiàng),然后在InputMask中進(jìn)行修改。(4)使用RichEdit注意事項(xiàng)如果PlainText屬性設(shè)置為True,則在RichEdit組件中顯示RTF文件的時(shí)候,將格式標(biāo)記以普通文本的方式顯示出來。如果PlainText屬性設(shè)置為False,則根據(jù)RTF文件中的格式設(shè)置來顯示。通常將PlainText屬性設(shè)置為False。通過方法Lines.LoadFromFile和Lines.SaveToFile可以方便地存取RTF文件。4.特殊輸入控件為滾動條組件。如果一個(gè)窗口中的內(nèi)容一次顯示不完,可以通過滾動條瀏覽不同的內(nèi)容。(1)ScrollBar組件:Kind取值可以是:
sbHorizontal滾動條是水平方向的。
sbVertical滾動條是垂直方向的。
Max、Min確定滾動條表示數(shù)值的范圍,類型為Integer。
LargeChange、SmallChange可以設(shè)置滾動條數(shù)值改變的大小。
LargeChange表示滑動按鈕在滾動條上的位置發(fā)生比較大的變化
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度出租車股份收購與品牌戰(zhàn)略實(shí)施合同3篇
- 2025年度智慧城市建設(shè)項(xiàng)目市場調(diào)研合同范本4篇
- 二零二五年度電梯工程環(huán)保驗(yàn)收與咨詢服務(wù)合同2篇
- 2025年度農(nóng)村自建房買賣合同范本2篇
- 2025年度個(gè)人信用貸款合同模板16篇
- 2025版農(nóng)戶土地承包流轉(zhuǎn)合同附農(nóng)產(chǎn)品品牌建設(shè)合作條款范本4篇
- 二零二五年度畜牧業(yè)科技創(chuàng)新成果轉(zhuǎn)化合同4篇
- 2025年度荒山林業(yè)種植承包項(xiàng)目合同4篇
- 2025年度新能源產(chǎn)業(yè)關(guān)鍵技術(shù)合作開發(fā)合同4篇
- 二零二五年度成都市住宅二手房買賣合同規(guī)范范本3篇
- 發(fā)電機(jī)停電故障應(yīng)急預(yù)案
- 接電的施工方案
- 常用藥物作用及副作用課件
- 幼兒阿拉伯?dāng)?shù)字描紅(0-100)打印版
- 社會組織等級評估報(bào)告模板
- GB/T 12173-2008礦用一般型電氣設(shè)備
- 2023年1月浙江高考英語聽力試題及答案(含MP3+錄音原文)
- 新媒體研究方法教學(xué)ppt課件(完整版)
- 2020新版?zhèn)€人征信報(bào)告模板
- 東芝空調(diào)維修故障代碼匯總
- 工藝管道儀表流程圖(共68頁).ppt
評論
0/150
提交評論