首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) | 法語 | 德語 | 韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會計從業(yè)資格考試會計證) | 經(jīng)濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務(wù)師
注冊資產(chǎn)評估師 | 高級會計師 | ACCA | 統(tǒng)計師 | 精算師 | 理財規(guī)劃師 | 國際內(nèi)審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價師 | 土地估價師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項目管理師 | 土地登記代理人 | 環(huán)境影響評價師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現(xiàn)在的位置: 考試吧(Exam8.com) > 計算機等級考試 > 計算機二級 > Delphi > 復(fù)習(xí)資料 > 正文

2011計算機等考Delphi:Delphi自定義部件開發(fā)

在本章中將闡述如何為Delphi應(yīng)用程序編寫部件。

  19.1.3 建立部件過程概略

  簡而言之,建立自定義部件的過程包含下列幾步:

  ● 建立包含新部件的庫單元

  ● 從已有部件類型中繼承得到新的部件類型

  ● 增加屬性、方法和事件

  ● 用Delphi注冊部件

  ● 為部件的屬性方法和事件建立Help文件

  如果完成這些工作,完整的部件包含下列4個文件

  ● 編譯的庫單元 ( .DCU文件)

  ● 選擇板位圖 (.DCR文件)

  ● Help文件 (.HLP文件)

  ● Help-keyword文件 (.KWF文件)

  19.2 Delphi部件編程方法

  19.2.1 Delphi部件編程概述

  19.2.1.1 Delphi可視部件類庫

  Delphi的部件都是可視部件類庫(VCL)的對象繼承樹的一部分,下面列出組成VCL的對象的關(guān)系。TComponent是VCL中每一個部件的共同祖先。TComponent提供了Delphi部件正常工作的最基本的屬性和事件。庫中的各條分支提供了其它的更專一的功能。

  當(dāng)建立部件時,通過從對象樹中已有的對象繼承獲得新對象,并將其加入VCL中。

  19.2.1.2 建立部件的起點

  部件是你在設(shè)計時想操作的任意程序元素。建立新部件意味著從已有類型中繼承得到新的部件對象類。

  建立新部件的主要途徑如下:

  ● 修改已有的控制

  ● 建立原始控制

  ● 建立圖形控制

  ● 建立Windows控制的子類

  ● 建立非可視部件

  下表列出了不同建立途徑的起始類

  表19.1 定義部件的起始點

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  途 徑 起 始 類

  ─────────────────────────────

  修改已有部件 任何已有部件,如TButton、TListBox

  或抽象部件對象如TCustomListBox

  建立原始控制 TCustomControl

  建立圖形控制 TGraphicControl

  建立窗口控制的子類 TWinControl

  建立非可視部件 TComponent

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  也可以繼承非部件的其它對象,但無法在窗體設(shè)計窗口中操作它們。Delphi包括許多這種對象,如TINIFile、TFont等。

  1. 修改已有控制

  建立部件的最簡單的方法是繼承一個已有的、可用的部件并定制它?梢詮腄elphi提供的任何部件中繼承。例如,可以改變標(biāo)準(zhǔn)控制的缺省屬性值,如TButton。

  有些控制,如Listbox和Grid等有許多相同變量,在這種情況下,Delphi提供了抽象控制類型,從該類型出發(fā)可定制出許多的類型。例如,你也許想建立TListBox的特殊類型,這種部件沒有標(biāo)準(zhǔn)TListBox的某些屬性,你不能將屬性從一個祖先類型中移去,因此你需要從比TListBox更高層次的部件繼承。例如TCustomListBox,該部件實現(xiàn)了TCustomListBox的所有屬性但沒有公布(Publishing)它們。當(dāng)從一個諸如TCustomListBox的抽象類中繼承時,你公布那些你想使之可獲得的屬性而讓其它的保護(hù)起來(protected)。

  2. 建立原始控制

  標(biāo)準(zhǔn)控制是在運行時可見的。這些標(biāo)準(zhǔn)控制都從TWinControl,繼承來的,當(dāng)你建立原始控制時,你使用TCustomControl作為起始點。標(biāo)準(zhǔn)控制的關(guān)鍵特征是它具有窗口句柄,句柄保存在屬性Handle中,這種控制:

  ● 能接受輸入焦點

  ● 能將句柄傳送給Windows API函數(shù)

  如果控制不需要接受輸入焦點,你可把它做成圖形控制,這可能節(jié)省系統(tǒng)資源。

  3. 建立圖形控制

  圖形控制非常類似定制的控制,但它們沒有窗口句柄,因此不占有系統(tǒng)資源。對圖形控制最大的限制是它們不能接收輸入焦點。你需要從TGraphicControl繼承,它提供了作圖的Canvas和能處理WM_PAINT消息,你需要覆蓋Paint方法。

  4. 繼承窗口控制

  Windows中有一種稱之為窗口類的概念,類似于面向?qū)ο蟮膶ο蠛皖惖母拍。窗口類是Windows中相同窗口或控制的不同實例之間共享的信息集合。當(dāng)你用傳統(tǒng)的Windows編程方法創(chuàng)建一種新的控制,你要定義一個新的窗口類,并在Windows中注冊。你也能基于已有的窗口類創(chuàng)建新的窗口類。這就稱為從窗口類繼承。在傳統(tǒng)的Windows編程中,如果你想建立客戶化的控制,你就必須將其做在動態(tài)鏈接庫里,就象標(biāo)準(zhǔn)Windows控制,并且提供一個訪問界面。使用Delphi,你能創(chuàng)建一個部件包裝在已有窗口類之上。如果你已有客戶化控制的庫,并想使其運行在你的Delphi應(yīng)用中,那你就能創(chuàng)建一個使你能使用已有控制和獲得新的控制的部件。在庫單元StdCtrls中有許多這樣的例子。

  5. 建立非可視化的部件

  抽象對象類型TComponent是所有部件的基礎(chǔ)類型。從TComponent直接繼承所創(chuàng)建的部件就是非可視化部件。你編寫的大多數(shù)部件都是可視控制。TComponent定義了部件在FormDesigner中所需的基本的屬性和方法。因此,從TComponent繼承來的任何部件都具備設(shè)計能力。

  非可視部件相當(dāng)少,主要用它們作為非可視程序單元(如數(shù)據(jù)庫單元)和對話框的界面。

上一頁  1 2 3 4 5 6 7 8 9 10  ... 下一頁  >> 
  相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專題
       預(yù)告:名師解析2010年9月計算機等級考試試題答案
       2010年9月計算機等級考試成績查詢時間及入口
       2010年9月計算機等考成績查詢短信免費提醒開通
文章搜索
計算機等級考試欄目導(dǎo)航
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。