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