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

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

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

來源:考試吧Exam8.com) 2010-10-30 9:13:30 考試吧:中國教育培訓第一門戶 模擬考場
在本章中將闡述如何為Delphi應用程序編寫部件。

  19.2.2.2 創(chuàng)建事件

  事件是部件的很重要的部分。事件是部件必須響應的系統(tǒng)事件與響應事件的一段代碼的聯(lián)接。響應代碼被稱為事件處理過程,它總是由部件用戶來編寫。通過使用事件,應用開發(fā)者不需要改變部件本身就能定制部件的行為。作為部件編寫者,運用事件能使應用發(fā)者定制所有的標準Delphi部件。要創(chuàng)建事件,應當理解:

  ● 什么是事件

  ● 怎樣實現(xiàn)標準事件

  ● 怎樣定義自己的事件

  1. 什么是事件

  事件是聯(lián)接發(fā)生的事情與某些代碼的機制,或者說是方法指針,一個指向特定對象實例的特定方法的指針。從部件用戶的角度,事件是與系統(tǒng)事件(如OnClick)有關(guān)的名稱,用戶能給該事件賦特定的方法供調(diào)用。例如,按鈕Buttonl有OnClick方法,缺省情況下Delphi在包含該按鈕的窗體中產(chǎn)生一個為ButtonlClick的方法,并將其賦給OnClick。當一個Click事件發(fā)生在按鈕上時,按鈕調(diào)用賦給OnClick的方法ButtonlClick:

  部件用戶將事件看作是由用戶編寫的代碼,而事件發(fā)生時由系統(tǒng)調(diào)用的處理辦法。

  從部件編寫者角度事件有更多的含義。最重要的是提供了一個讓用戶編寫代碼響應特定事情的場所。

  要編寫一個事件,應當理解:

  ● 事件和方法指針

  ● 事件是屬性

  ● 事件處理過程類型

  ● 事件處理過程是可選的

 、 事件是方法指針

  Delphi使用方法指針實現(xiàn)事件。一個方法指針是指向特定對象實例的特定方法的特定指針。作為部件編寫者,能將方法指針作為一種容器。你的代碼一發(fā)現(xiàn)事情發(fā)生,就調(diào)用由用戶定義的方法。

  方法指針的工作方式就象其它的過程類型,但它們保持一個隱含的指向?qū)ο髮嵗闹羔槨K械目刂贫祭^承了一個名為Click的方法,以處理Click事件。Click方法調(diào)用用戶的Click事件處理過程。

  procedure TControl.Click;

  begin

  if Assigned(OnClick ) then OnClick( Self );

  end;

  如果用戶給Control的OnClick事件賦了處理過程(Handle),那鼠標點按Control時將導致方法被調(diào)用。

  ⑵ 事件是屬性

  部件采用屬性的形式實現(xiàn)事件。不象大多數(shù)其它屬性,事件不使用方法來使實現(xiàn)read和write部分。事件屬性使用了相同類型的私有對象域作為屬性。按約定域名在屬性名前加“F”。例如OnClick方法的指針,存在TNotifyEvent類型FOnClick域中。OnClick事件屬性的聲明如下:

  type

  TControl=class ( TComponent )

  private

  FOnClick: TNofiFyEvent; { 聲明保存方法指針的域 }

  protected

  property OnClick: TNotifyEvent read FOnClick write FOnClick;

  end;

  象其它類型的屬性一樣,你能在運行時設(shè)置和改變事件的值。將事件做成屬性的主要好處是部件用戶能在設(shè)計時使用Object Inspector設(shè)置事件處理過程。

  ⑶ 事件處理過程類型

  因為一個事件是指向事件處理過程的指針,因此事件屬性必須是方法指針類型,被用作事件處理過程的代碼,必須是相應的對象的方法。

  所有的事件方法都是過程。為了與所給類型的事件兼容,一個事件處理過程必須有相同數(shù)目和相同類型的相同順序的參數(shù)。Delphi定義了所有標準事件處理過程的方法類型,當你創(chuàng)建自己的事件時,你能使用已有的事件類型,或創(chuàng)建新的。雖然不能用函數(shù)做事件處理過程,但可以用var參數(shù)得到返回信息。

  在事件處理過程中傳遞var參數(shù)的典型例子是TKeyPressEvent類型的KeyPressed事件。TKeyPressEvent定義中含有兩個參數(shù)。一個指示哪個對象產(chǎn)生該事件。另一個指示那個鍵按下:

  type

  TKeyPressEvent=procedure( Sender: TObject; var key: char) of Object;

  通常key參數(shù)包含用戶按下鍵的字符。在某些情況下,部件的用戶可能想改變字符值。例如在編輯器中強制所有字符為大寫,在這種情況下,用戶能定義下列的事件處理過程:

  procedure TForml.EditlKeyPressed( Sender: TObject; var key: char);

  begin

  key := Upcase( key );

  end;

  也可使用var參數(shù)讓用戶覆蓋缺省的處理。

  ⑷ 事件處理過程是可選的

  在為部件創(chuàng)建事件時要記住部件用戶可能并不編寫該事件的處理過程。這意味著你的部件不能因為部件用戶沒有編寫處理代碼而出錯。這種事件處理過程的可選性有兩個方面:

  ① 部件用戶并非不得不處理事件

  事件總是不斷地發(fā)生在Windows應用程序中。例如,在部件上方移動鼠標就引起Windows發(fā)送大量的Mouse-Move消息給部件,部件將鼠標消息傳給OnMouseMove事件。在大多數(shù)情況下,部件用戶不需要關(guān)心MouseMove事件,這不會產(chǎn)生問題,因為部件不依賴鼠標事件的處理過程。同樣,自定義部件也不能依賴用戶的事件處理過程。

 、 部件用戶能在事件處理過程寫任意的代碼

  一般說來,對用戶在事件處理過程中的代碼沒有限制。Delphi部件庫的部件都支持這種方式以使所寫代碼產(chǎn)生錯誤的可能性最小。顯然,不能防止用戶代碼出現(xiàn)邏輯錯誤。

 << 上一頁  11 12 13 14 15 16 17 18 19 20  ... 下一頁  >> 
  相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專題
       預告:名師解析2010年9月計算機等級考試試題答案
       2010年9月計算機等級考試成績查詢時間及入口
       2010年9月計算機等考成績查詢短信免費提醒開通
文章搜索
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。
主站蜘蛛池模板: 欧美性xxxxxx性 | 欧美性群另类大交人妖 | 久草久草久草久草 | 成人开心激情 | 欧美视频在线第一页 | 青草草在线视频 | 日本高清在线观看天码888 | 香港三级日本三级人妇三级四 | 日韩免费片| 涩涩视频www在线观看入口 | 男女一级做a爱过程免费视频 | 成 人 黄 色 激 情视频网站 | 亚洲精品在线网址 | 欧美日韩中文字幕在线手机版本 | 看一级特黄a大一片 | 成人毛片免费免费 | 国产日韩欧美第一页 | 国产精品日韩精品 | 97国产品香蕉在线观看 | 黄色污污在线观看 | 日韩综合一区 | 99精品国产成人一区二区 | 爆操欧美 | 五月综合色婷婷影院在线观看 | 欧美高清在线精品一区二区不卡 | 欧美日韩亚洲一区 | 清清草在线视频 | 性做久久久久久久免费看 | 精品国产一区二区三区麻豆小说 | 午夜视频在线观看按摩女 | 日韩不卡高清视频 | 午夜在线播放免费人成无 | 日韩成人激情 | 永久免费在线播放 | 白丝国产 | 日韩国产精品欧美一区二区 | 亚洲丁香网 | 成人在线免费视频观看 | 一二三四在线视频社区8 | 狠狠色狠狠色综合日日小蛇 | 深夜天堂|