黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

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

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

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

  19.2.1.5 編寫部件的面向?qū)ο蠹夹g(shù)

  部件使用者在Delphi環(huán)境中開發(fā),將遇到在包含數(shù)據(jù)和方法的對(duì)象。他們將在設(shè)計(jì)階段和運(yùn)行階段操作對(duì)象,而編寫部件將比他們需要更多的關(guān)于對(duì)象的知識(shí),因此,你應(yīng)當(dāng)熟悉Delphi的面向?qū)ο蟮某绦蛟O(shè)計(jì)。

  1. 建立部件

  部件用戶和部件編寫者最基本的區(qū)別是用戶處理對(duì)象的實(shí)例,而編寫者創(chuàng)建新的對(duì)象類型。這個(gè)概念是面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。例如,用戶創(chuàng)建了一個(gè)包含兩個(gè)按鈕的窗體,一個(gè)標(biāo)為OK,另一個(gè)標(biāo)為Cancel,每個(gè)都是TButton的實(shí)例,通過給Text、default和Cancel等屬性賦不同的值,給OnClick事件賦予不同的處理過程,用戶產(chǎn)生了兩個(gè)不同的實(shí)例。

  建立新部件一般有兩個(gè)理由

  ● 改變類型的缺省情況,避免反復(fù)

  ● 為部件增加新的功能

  目的都是為了建立可重用對(duì)象。如果從將來重用的角度預(yù)先計(jì)劃和設(shè)計(jì),能節(jié)省一大堆將來的工作。

  在程序設(shè)計(jì)中,避免不必要的重復(fù)是很重要的。如果發(fā)現(xiàn)在代碼中一遍又一遍重寫相同的行,就應(yīng)當(dāng)考慮將代碼放在子過程或函數(shù)中,或干脆建立一個(gè)函數(shù)庫(kù)。

  設(shè)計(jì)部件也是這個(gè)道理,如果總是改變相同的屬性或相同的方法調(diào)用,那應(yīng)創(chuàng)建新部件。

  創(chuàng)建新部件的另一個(gè)原因是想給已有的部件增加新的功能。你可以從已有部件直接繼承(如ListBox)或從抽象對(duì)象類型繼承(如TComponent,TControl)。你雖然能為部件增加新功能,但不能將原有部件的屬性移走,如果要這樣做的話,就從該父對(duì)象的祖先對(duì)象繼承。

  2. 控制部件的訪向

  Object Pascal語言為對(duì)象的各部分提供了四個(gè)級(jí)別的訪問控制。訪問控制讓你定義什么代碼能訪問對(duì)象的哪一部分。通過描述訪問級(jí)別,定義了部件的接口。如果合理安排接口,將提高部件的可用性和重用性。

  除非特地描述,否則加在對(duì)象里的域、方法和屬性的控制級(jí)別是published,這意味著任何代碼可以訪問整個(gè)對(duì)象。

  下表列出各保護(hù)級(jí)別:

  表19.2 對(duì)象定義中的保護(hù)級(jí)別

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

  保護(hù)級(jí) 用處

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

  private 隱藏實(shí)現(xiàn)細(xì)節(jié)

  protected 定義開發(fā)者接口

  public 定義運(yùn)行時(shí)接口

  published 定義設(shè)計(jì)時(shí)接口

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

  所有的保護(hù)級(jí)都在單元級(jí)起作用。如果對(duì)象的某一部分在庫(kù)單元中的一處可訪向,則在該庫(kù)單元任意處都可訪向。

  ⑴ 隱藏實(shí)現(xiàn)細(xì)節(jié)

  如果對(duì)象的某部分被聲明為private,將使其它庫(kù)單元的代碼無法訪問該部分,但包含聲明的庫(kù)單元中的代碼可以訪問,就好象訪問public一樣,這是和C++不同的。

  對(duì)象類型的private部分對(duì)于隱藏詳細(xì)實(shí)現(xiàn)是很重要的。既然對(duì)象的用戶不能訪問,private部分,你就能改變對(duì)象的實(shí)現(xiàn)而不影響用戶代碼。

  下面是一個(gè)演示防止用戶訪問private域的例子:

  unit HideInfo;

  interface

  uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms,

  Dialogs;

  type

  TSecretForm = class(TForm) { 聲明新的窗體窗口 }

  procedure FormCreate(Sender: TObject);

  private { declare private part }

  FSecretCode: Integer; { 聲明private域 }

  end;

  var

  SecretForm: TSecretForm;

  implementation

  procedure TSecretForm.FormCreate(Sender: TObject);

  begin

  FSecretCode := 42;

  end;

  end.

  unit TestHide; { 這是主窗體庫(kù)單元 }

  interface

  uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms,

  Dialogs, HideInfo; { 使用帶TSecretForm聲明的庫(kù)單元 }

  type

  TTestForm = class(TForm)

  procedure FormCreate(Sender: TObject);

  end;

  var

  TestForm: TTestForm;

  implementation

  procedure TTestForm.FormCreate(Sender: TObject);

  begin

  SecretForm.FSecretCode := 13; {編譯過程將以"Field identifier expected"錯(cuò)誤停止}

  end;

  end.

  ⑵ 定義開發(fā)者接口

  將對(duì)象某部分聲明為protected,可使在包含該部件聲明的庫(kù)單元之外的代碼無法訪問,就象private部分。protected部分的不同之處是,某對(duì)象繼承該對(duì)象,則包含新對(duì)象的庫(kù)單元可以訪問protected部分,你能使用protected聲明定義開發(fā)者的接口。也就是說。對(duì)象的用戶不能訪向protected部分,但開發(fā)者通過繼承就可能做到,這意味著你能通過protected部分的可訪問性使部件編寫者改變對(duì)象工作方式,而又不使用戶見到這些細(xì)節(jié)。

  ⑶ 定義運(yùn)行時(shí)接口

  將對(duì)象的某一部分定義為public可使任何代碼訪問該部分。如果你沒有對(duì)域方法或?qū)傩约右詐rivate、protected、public的訪問控制描述。那么該部分就是published。

  因?yàn)閷?duì)象的public部分可在運(yùn)行時(shí)為任何代碼訪問,因此對(duì)象的public部分被稱為運(yùn)行接口。運(yùn)行時(shí)接口對(duì)那些在設(shè)計(jì)時(shí)沒有意義的項(xiàng)目,如依靠運(yùn)行時(shí)信息的和只讀的屬性,是很有用的。那些設(shè)計(jì)用來供用戶調(diào)用的方法也應(yīng)放在運(yùn)行時(shí)接口中。

  下例是一個(gè)顯示兩個(gè)定義在運(yùn)行時(shí)接口的只讀屬性的例子:

  type

  TSampleComponent = class(TComponent)

  private

  FTempCelsius: Integer; { 具體實(shí)現(xiàn)是private }

  function GetTempFahrenheit: Integer;

  public

  property TempCelsius: Integer read FTempCelsius; { 屬性是public }

  property TempFahrenheit: Integer read GetTempFahrenheit;

  end;

  function GetTempFahrenheit: Integer;

  begin

  Result := FTempCelsius * 9 div 5 + 32;

  end;

  既然用戶在設(shè)計(jì)時(shí)不能改變public部分的屬性的值,那么該類屬性就不能出現(xiàn)在Object Inspector窗口中。

  ⑷ 定義設(shè)計(jì)時(shí)接口

  將對(duì)象的某部分聲明為published,該部分也即為public且產(chǎn)生運(yùn)行時(shí)類型信息。但只有published部分定義的屬性可顯示在Object Inspector窗口中。對(duì)象的published部分定義了對(duì)象的設(shè)計(jì)時(shí)接口。設(shè)計(jì)時(shí)接口包含了用戶想在設(shè)計(jì)時(shí)定制的一切特征。

  下面是一個(gè)published屬性的例子,因?yàn)樗莗ublished,因此可以出現(xiàn)在Object Inspector窗口:

  TSampleComponent = class(TComponent)

  private

  FTemperature: Integer; { 具體實(shí)現(xiàn)是 private }

  published

  property Temperature: Integer read FTemperature write FTemperature; { 可寫的 }

  end;

  3. 派送方法

  派送(Dispatch)這個(gè)概念是用來描述當(dāng)調(diào)用方法時(shí),你的應(yīng)用程序怎樣決定執(zhí)行什么樣的代碼,當(dāng)你編寫調(diào)用對(duì)象的代碼時(shí),看上去與任何其它過程或函數(shù)調(diào)用沒什么不同,但對(duì)象有三種不同的派送方法的方式。

  這三種派送方法的類型是:

  ● 靜態(tài)的

  ● 虛擬的

  ● 動(dòng)態(tài)的

  虛方法和動(dòng)態(tài)方法的工作方式相同,但實(shí)現(xiàn)不同。兩者都與靜態(tài)方法相當(dāng)不同。理解各種不同的派送方法對(duì)創(chuàng)建部件是很有用的。

上一頁(yè)  1 2 3 4 5 6 7 8 9 10  ... 下一頁(yè)  >> 
  相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題
       預(yù)告:名師解析2010年9月計(jì)算機(jī)等級(jí)考試試題答案
       2010年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間及入口
       2010年9月計(jì)算機(jī)等考成績(jī)查詢短信免費(fèi)提醒開通
文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
主站蜘蛛池模板: 在线观看成人免费 | 簧片在线免费观看 | 黄色一级片观看 | 日本羞羞无遮挡免费漫画 | xxxxxx日本护士xxxx | 日本三级香港三级人妇网站 | 国产精品视频网址 | 日本道综合一本久久久88 | 日日噜噜夜夜狠狠扒开双腿 | 日韩免费一区二区三区 | 欧美一级片免费在线观看 | 能看的黄色网址 | 羞羞视频免费在线观看 | 无毒不卡在线播放 | 国产成 人 综合 亚洲绿色 | 日本一本在线观看 | 久久九九精品一区二区 | 亚洲日韩中文字幕一区 | 91香蕉导航 | 国产欧美一区视频在线观看 | 亚洲 欧美 在线观看 | 免费观看一级欧美大 | 国产极品在线观看视频 | 午夜a级毛片 | 国产女人91精品嗷嗷嗷嗷 | www国产永久免费视频看看 | 日本一区二区三区中文字幕 | 香港一级纯黄大片 | 久久午夜羞羞影院免费观看 | 在线观看国产精成人品 | 亚洲视频四区 | 亚洲精品无码专区在线播放 | 一区免费在线观看 | 国产一区二区在线观看视频 | www一片黄 | 欧美激情精品久久久久久久 | 成人男女网18免费91 | 韩国午夜理伦三级在线观看仙踪林 | 丝袜国产 | 亚洲天天更新 | 午夜精品久久久久久影视riav |