DELPHI常用的VCL类简介
[+]
窗體和應(yīng)用程序類表示Form和Application對象,這些類是從TComponent派生而來,它們實(shí)際也是組件,單獨(dú)地把它列舉出來,以示與拖到窗體上的控件加以區(qū)別。
1、 TApplication類
TApplication類封裝了Windows程序的基本操作。TApplication所擔(dān)負(fù)的任務(wù)有:管理圖標(biāo)、提供快捷幫助和基本消息處理。每個(gè)Delphi應(yīng)用程序都有一個(gè)指向TApplication對象的指針,此指針稱為Application,用TApplication類主要執(zhí)行消息框,管理快捷幫助,為按鈕和狀態(tài)欄設(shè)置提示文本。TApplication有點(diǎn)不一樣,它的有些屬性(Icon,HelpFile和Title)可以通過Project Options對話框的Application頁面來進(jìn)行設(shè)置。其繼承關(guān)系如下:
2、TForm類
TForm類封裝了VCL中的窗體,窗體可用作主窗體、對話框、輔助窗口以及可以想像出的任何其他類型窗口。TForm是VCL中的主要功能類。其繼承關(guān)系如下:
組件類
這組類包含的類非常廣泛,可以進(jìn)一步把它分成一些獨(dú)立的分類:
1、 標(biāo)準(zhǔn)組件類
標(biāo)準(zhǔn)組件類是那些封裝大部分Windows控件的組件,包括TButton,TEdit,TListBox,TMemo,TMainMenu,TScrollBar,TPopupMenu,TCheckBox,TRadioButton,TRadioGroup,TGroupBox,TPanel和TActionList。
這些類的大部分都封裝了一個(gè)Windows控件,TMainMenu類封裝一個(gè)應(yīng)用程序的主菜單,在設(shè)計(jì)階段,雙擊MainMenu組件的圖標(biāo)就會(huì)出現(xiàn)Menu Designer。TMainMenu有一些屬性,這些屬性能控制菜單選項(xiàng)是否變灰,是否被復(fù)選,快捷幫助ID,選項(xiàng)提示文本,以及其他的一些內(nèi)容,每個(gè)菜單選項(xiàng)都有一個(gè)OnClick事件,因此可以為選中的菜單選項(xiàng)連接一個(gè)事件處理程序。
(1) TPanel組件
New Term
面板(panel)代表窗體上的一個(gè)矩形區(qū)域,通常它有它自己的組件,可以把它作為一個(gè)單元來處理。
Panel組件是一個(gè)包容器組件,因此它包含了其他一些組件,Panel有一些屬性,這些屬性用來控制面板將用什么類型的邊緣,控制面板是否凸起、下凹或平放;還可以控制其便捷的寬度,這些屬性的組合可以建立起各種多維面板。其繼承關(guān)系如下:
(2) TActionList組件
這個(gè)組件用來增加一些命令,并且使這些命令很容易作用于一個(gè)組件或者一組組件,例如,一個(gè)應(yīng)用程序通過用Clipboard組件,就可以在菜單、工具欄和快捷菜單上刪除、拷貝和傳送選項(xiàng),如果Clipboard中有數(shù)據(jù),那么傳送的按鈕盒菜單選項(xiàng)就會(huì)生效。如果Clipboard中沒有數(shù)據(jù),那么傳送的按鈕盒菜單項(xiàng)將無效,當(dāng)用TActionList組件時(shí),所有的控件(工具欄、按鈕盒菜單選項(xiàng))都可以是有效或者無效。其繼承關(guān)系如下:
(3)Addition標(biāo)簽上的組件
它們也是標(biāo)準(zhǔn)控件,在組件選項(xiàng)板的Additional標(biāo)簽中可以找到這些控件,如下圖:
TSpeedButton也是一個(gè)具有圖像的按鈕,但這個(gè)按鈕不是一個(gè)真正的按鈕,相反它是一個(gè)按鈕的圖形描述,這就使得可以利用大量的此按鈕,但不消耗每個(gè)按鈕的Windows資源。
TImage組件能夠在窗體放置圖像,可以從磁盤上選擇這個(gè)圖像文件。
TBevel提供了一個(gè)更美觀的窗體。
TStringGrid和TDrawGrid類提供了一種表示網(wǎng)格信息的方法。
?
?
2、Win32自定義控件類
VCL有一種組件類,它們封裝了很多Windows32位的自定義控件,這些包括TListView,TTreeView,TTrackBar,TProgressBar,TTabControl,TPageControl,TRichEdit,TImageList,TStatusBar,TAnimate,TDateTimePicker,TToolBar,TCoolBar和一些其他的組件。這里的有些組件較復(fù)雜,表示它們的VCL類也同樣很復(fù)雜,但有一點(diǎn)是可以相信的,那就是應(yīng)用這些通用控件,VCL可以減輕很多工作負(fù)擔(dān),在充分理解這些類之前,必須花一些時(shí)間去熟悉這些類,在以后的使用過程中我們會(huì)詳細(xì)介紹。
3、數(shù)據(jù)庫組件類
VCL還有一組主數(shù)據(jù)庫組件,不但包括可視化組件,也包括非可視化組件,非可視化數(shù)據(jù)庫組件包括TDateSource,TDatabase,TTable和TQuery。這些類封裝了幕后數(shù)據(jù)庫操作。
可視化數(shù)據(jù)庫組件是VCL數(shù)據(jù)庫操作的一部分,用戶可以查看這些組件并可以與之交互。例如,TDBGrid組件是用來顯示網(wǎng)格中的數(shù)據(jù)庫表,在這種情況下,TDBGrid充當(dāng)用戶與數(shù)據(jù)庫的接口,通過TDBGrid,用戶可以查看和編輯數(shù)據(jù)庫表。
TDBNavigator組件提供了一些按鈕,用這些按鈕用戶可以移動(dòng)數(shù)據(jù)庫表,這個(gè)類包括的按鈕有下一個(gè)記錄、前一個(gè)記錄、第一個(gè)記錄、最后一個(gè)記錄、取消編輯、接收編輯和繼續(xù)編輯等。
另一種數(shù)據(jù)意識(data-aware)組件類把標(biāo)準(zhǔn)Windows控件與數(shù)據(jù)庫字段緊緊地聯(lián)系在一起,這些類包括TDBText、TDBEdit、TDBList、TDBImage和其他一些類。
4、通用對話類
毫無疑問,Windows用通用對話框來處理諸如打開文件、保存文件、選擇字體、選擇顏色等事情。VCL在各種類型的類中封裝了這些通用對話框,這些類時(shí)TOpenDialog、TSaveDialog、TOpenPictureDialog、TSavePictureDialog、TFontDialog、TColorDialog、TPrintDialog和TPrintSetupDialog。VCL也為這個(gè)組件組中增加了TFindDialog和TReplaceDialog類,這個(gè)組件組中所有組件都是非可視化的,它們沒有設(shè)計(jì)階段可視化接口,當(dāng)然在運(yùn)行階段顯示,對話框是可視的。
5、系統(tǒng)組件類
組件選項(xiàng)面板上的System標(biāo)簽包含了可視化和非可視化組件的混合,TTimer類用來表示W(wǎng)indows系統(tǒng)計(jì)時(shí)器,它只有一個(gè)OnTimer事件,每當(dāng)計(jì)時(shí)器啟動(dòng)時(shí),就會(huì)調(diào)用這個(gè)事件,計(jì)時(shí)器的時(shí)間間隔是由Interval屬性設(shè)置,TTimer是一個(gè)非可視化組件。
TMediaPlayer類也包含在這組類中,這個(gè)類可以用來處理媒體文件。比如音頻、AVI視頻和MIDI音頻等,媒體不但可以被播放、停止、暫停、定位、而且還有很多其他操作,這個(gè)類具有很多屬性和事件,這些屬性和事件大大簡化了Windows Media Control Interface(媒體控制接口MCI)復(fù)雜程度。
TPaintBox具有一個(gè)空畫布,在這個(gè)畫上可以畫出任何喜愛的東西。這個(gè)組件有很多潛在的用戶。
系統(tǒng)組件組中還包括OLE和動(dòng)態(tài)數(shù)據(jù)交換DDE類。
6、Win 3.1組件
不要犯這種錯(cuò)誤:只因?yàn)闃?biāo)簽上的名字便放棄這個(gè)組件組。這個(gè)組件組包含一些功能強(qiáng)大的組件(Win 3.1標(biāo)簽源自Delphi1中)。其中比較好用的是TTabSet和TNotebook組件。這個(gè)組件組還包括一些組件,這些組件能幫助讀者創(chuàng)建自己擁有的自定義File Open和File Save對話框,如TFileListBox、TDirectoryListBox、TDriveComboBox和TFilterComboBox。
7、Internet組件
這個(gè)Internet標(biāo)簽中包含了一些用于Internet編程的組件,這些組件包括HTML、FTP、SMTP、POP3和HTTP等組件,它也包含一些通過API進(jìn)行的一般網(wǎng)絡(luò)編程組件,這些組件中的絕大部分本來就是VCL組件,起碼有一個(gè)組件THTML就是ActiveX控件。
8、樣本組件
Samples標(biāo)簽中包含一些用于理解怎樣編寫組件的組件,它提供了這些組件的源代碼,因此可以看出它們是怎樣工作的,樣本組件包括TGauge、TColorButton、TSpinButton,TSpinEdit,TDirectoryOutline和TCalendar。
9、ActiveX控件
ActiveX標(biāo)簽中包含ActiveX控件,這些控件可用于應(yīng)用程序,這些控件包括Software FX公司的Chart Ix、Visual Component公司的Visual Speller、以及Bits Per Second公司的Formula One Spreadsheet、Formula One VtChart和Graph控件。
10、GDI類
GDI(圖形設(shè)備接口)類在Windows GUI應(yīng)用程序中起很大作用,這些類封裝了位圖、字體、設(shè)備描述環(huán)境(DCs)、畫筆和筆等應(yīng)用,它可以通過這些GDI對象把圖形和文本在窗口上顯示出來。GDI類與一個(gè)具體的組件沒有聯(lián)系,但很多類都有這些類的屬性實(shí)例。例如,編輯控件有一個(gè)屬性叫Font,它是TFont類的實(shí)例。
術(shù)語設(shè)備描述環(huán)境(device context)在傳統(tǒng)的Windows程序員中是很著名的,但在VCL中此術(shù)語用的并不廣泛,這是因?yàn)閂CL在TCanvas類中封裝Windows DC,VCL用術(shù)語畫布(Canvas)來表示W(wǎng)indows設(shè)備描述環(huán)境。畫布提供了可以用來畫畫的面,它用的方法是MoveTo、LineTo和TextOut,通過用Draw或StretchDraw方法可以再畫布上顯示位圖。畫布可以用來在其上畫畫。
TCanvas類包含了其他類GDI類的實(shí)例。例如,當(dāng)做MoveTo/LineTo工作時(shí),線是用當(dāng)前畫筆畫的,Pen屬性用來決定當(dāng)前筆色,Pen屬性是TPen類的一個(gè)實(shí)例。TPen有一些決定畫什么類型線的屬性,其類型有:線寬、線的格式(實(shí)線、虛線、點(diǎn)線等)和畫線的模式。
TBrush類代表畫筆,畫筆是用來為畫布操作填補(bǔ)畫案,比如像FillRect,Polygon和Ellipse等畫布操作,TBrush屬性包括Color,Style和Bitmap。Style屬性可以為畫筆設(shè)置陰影線圖案。Bitmap屬性可以為填充一個(gè)位圖。
TBitmap類封裝了VCL中的位圖操作,其屬性包括Palette,Height,Width和TransparentColor,其方法包括LoadFromFile,LoadFromResourceID和SaveToFile,其他組件類也可以用TBitmap,除了TCanvas外諸如TImage、TBitBtn和TSpeedButton等都可以用TBitmap,在大量圖形應(yīng)用程序中通常用脫屏位圖,這樣可以減少閃動(dòng),改善圖形質(zhì)量。
TFont類處理字體操作,其屬性包括Color,Height和Style。所有顯示文本的組件類都有TFont類。
除了這里列出的GDI類以外,還有一些其他類,在以后的Delphi學(xué)習(xí)過程中,我們將會(huì)學(xué)習(xí)到更多有關(guān)這方面的類,并掌握使用它們。
下圖顯示了GDI類繼承關(guān)系:
11、實(shí)用類(Utility Class)
VCL包括很多實(shí)用類,這些實(shí)用類可以用在應(yīng)用程序中,實(shí)用類可以簡化一些Windows編程。例如,TIniFile可以方便地使用Windows配置文件讀和寫(.INI文件),一般常識是在外面用.INI文件,在內(nèi)部用Registry注冊表,為了使用注冊表方便,VCL提供了TRegistry和TRegkeyInfo類。
TStringList類可以表示字符串?dāng)?shù)組,TStringList類可以被很多類用來存儲(chǔ)字符串,例如,TMemo類的Lines屬性就是一個(gè)TStringList對象,通過用LoadFromFile和SaveToFile方法,TStringList可以保存字符串列表文件,或從文件中加載字符串列表,TStringList也可以用來讀寫文本文件。
另一個(gè)VCL實(shí)用類就是TList類,這個(gè)類可以建立任何想要的類型對象數(shù)組。TList類可以存儲(chǔ)指針清單,TList類主要優(yōu)點(diǎn)就是它提供了一種方法,這種方法可以使數(shù)組隨著增加和刪除對象,動(dòng)態(tài)地?cái)U(kuò)大或縮小。
VCL還包括一些類,這些類可以用來讀寫數(shù)據(jù)流(數(shù)據(jù)流實(shí)際上只是數(shù)據(jù)塊)。TStream,TFileStream,TMemoryStream和TResourceStream類都可以讀寫數(shù)據(jù)流,TStream是所有數(shù)據(jù)流類的基類,當(dāng)處理磁盤上的文件時(shí)就會(huì)用到TFileStream類,在內(nèi)存中處理數(shù)據(jù)時(shí)就要用到TMemoryStream類,從EXEs和DLLs中加載二進(jìn)制資源時(shí)就要用到TResourceStream類,這些類還有更高級的用法,當(dāng)需要它們提供的這些特別功能時(shí),它們是很有用的。更多這些類的詳細(xì)信息請大家自己看看Delphi VCL Help。
這不是全部
討論到這里并沒有討論到所有的VCL類,但這里所涉及到的類在應(yīng)用程序中用到的可能性很大。
總結(jié)
以上是生活随笔為你收集整理的DELPHI常用的VCL类简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。