freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

delphi自定義部件開(kāi)發(fā)一-資料下載頁(yè)

2024-08-21 10:00本頁(yè)面

【導(dǎo)讀】用而設(shè)計(jì)自己的部件。這一章將達(dá)到兩個(gè)目的:。部件是Delphi應(yīng)用程序的程序構(gòu)件。盡管大多數(shù)部件代表用戶界面的可見(jiàn)??梢詮娜齻€(gè)方面來(lái)考察它:功能定義、技術(shù)定義和經(jīng)驗(yàn)定義??诤痛a窗口中操作的元素。編寫(xiě)部件的目標(biāo)之一是使部件盡可能的類(lèi)似其它部件。從最簡(jiǎn)單的角度看,部件是任何從TComponent繼承的對(duì)象。但是TComponent并不知如何處理你的部。件的具體功能,因此,你必須自己描述它。在實(shí)際編程中,部件是能插入Delphi開(kāi)發(fā)環(huán)境的任何元素。序的各種復(fù)雜性。部件定義只是接口描述,本章將詳細(xì)闡述部件框架,說(shuō)明部件的有限性,正。定代碼的方法和怎樣使部件融入Delphi環(huán)境。時(shí),需要從已存部件中繼承產(chǎn)生一個(gè)新對(duì)象類(lèi)型,并增加新的屬性和方法。方面,部件使用者,在建立Delphi應(yīng)用時(shí),只是使用已有部件。這些部分被稱為protected界面的。出組成VCL的對(duì)象的關(guān)系。TComponent提供了Delphi部件正常工作的最基本的屬性和事件。當(dāng)你建立原始控制時(shí),你使用TCustomControl作為起始點(diǎn)。標(biāo)準(zhǔn)控制的關(guān)鍵特

  

【正文】 對(duì)象的某部分聲明為 published,該部分也即為 public 且產(chǎn)生運(yùn)行時(shí)類(lèi)型信息。但只有 published 部分定義的屬性可顯示在 Object Inspector 窗口中。對(duì)象的 published 部分定義了對(duì)象的設(shè)計(jì)時(shí)接口。設(shè)計(jì)時(shí)接 口包含了用戶想在設(shè)計(jì)時(shí)定制的一切特征。 下面是一個(gè) published 屬性的例子,因?yàn)樗?published,因此可以出現(xiàn)在Object Inspector 窗口: TSampleComponent = class(TComponent) private FTemperature: Integer。 { 具體實(shí)現(xiàn)是 private } published property Temperature: Integer read FTemperature write FTemperature。 { 可寫(xiě)的 } end。 3. 派送方法 派送 (Dispatch)這個(gè)概念是用來(lái)描述當(dāng)調(diào)用方法時(shí),你的應(yīng)用程序怎樣決定執(zhí)行什么樣的代碼,當(dāng)你編寫(xiě)調(diào)用對(duì)象的代碼時(shí),看上去與任何其它過(guò)程或函數(shù)調(diào)用沒(méi)什么不同,但對(duì)象有三種不同的派送方法的方式。 這三種派送方法的類(lèi)型是: ● 靜態(tài)的 ● 虛擬的 ● 動(dòng)態(tài)的 虛方法和動(dòng)態(tài)方法的工作方式相同,但實(shí)現(xiàn)不同。兩者都與靜態(tài)方法相當(dāng)不同。理解各種不同的派送方法對(duì)創(chuàng)建部件是很有用的。 ⑴ 靜態(tài)方法: 如果沒(méi)有特殊聲明,所有的對(duì)象方法都是靜態(tài)的 .。靜態(tài)方法的工作方式正如一般的過(guò)程和函數(shù)調(diào)用。在編譯時(shí),編譯器決定方法地址,并與方法聯(lián)接。 靜態(tài)方法的基本好處是派送相當(dāng)快。因?yàn)橛删幾g器決定方法的臨時(shí)地址,并直接與方法相聯(lián)。虛方法和動(dòng)態(tài)方法則相反,用間接的方法在運(yùn)行時(shí)查找方法的地址,這將花較長(zhǎng)的時(shí)間。 靜態(tài)方法的另一個(gè)不同之處是當(dāng)被另一類(lèi)型繼承時(shí)不做任何改變,這就是說(shuō)如果你聲明了一個(gè)包含靜態(tài)方法的對(duì)象,然后從該對(duì)象繼承新的對(duì)象,則該后代對(duì)象享有與祖先對(duì)象相同的方法地址,因此,不管實(shí)際對(duì)象是誰(shuí),靜態(tài)方法都完成相同的工作。 你不能覆蓋靜態(tài)方法,在后 代對(duì)象中聲明相同名稱的靜態(tài)方法都將取代祖先對(duì)象方法。 在下列代碼中,第一個(gè)部件聲明了兩靜態(tài)方法,第二個(gè)部件,聲明了相同名字的方法取代第一個(gè)部件的方法。 type TFirstComponent = class(TComponent) procedure Move。 procedure Flash。 end。 TSecondComponent = class(TFirstComponent) procedure Move。 { 盡管有相同的聲明,但與繼承的方法不同 } function Flash(HowOften: Integer): Integer。 { 同 Move 方法一樣 } end。 ⑵ 虛方法 調(diào)用虛方法與調(diào)用任何其它方法一樣,但派送機(jī)制有所不同。虛方法支持在后代對(duì)象中重定義方法,但調(diào)用方法完全相同,虛方法的地址不是在編譯時(shí)決定,而是在運(yùn)行時(shí)才查找方法的地址。 為聲明一個(gè)新的方法,在方法聲明后增加 virtual 指令。方法聲明中的 virtual指令在對(duì)象虛擬方法表( VMT)中創(chuàng)建一個(gè)入口,該虛擬方法表保存對(duì)象類(lèi)所有虛有擬方法的地址。 當(dāng)你從已有對(duì)象獲得新的對(duì) 象,新對(duì)象得到自己的 VMT,它包含所有的祖先對(duì)象的 VMT 入口,再增加在新對(duì)象中聲明的虛擬方法。后代對(duì)象能覆蓋任何繼承的虛擬方法。 覆蓋一個(gè)方法是擴(kuò)展它,而不是取代它。后代對(duì)象可以重定義和重實(shí)現(xiàn)在祖先對(duì)象中聲明的任何方法。但無(wú)法覆蓋一個(gè)靜態(tài)方法。覆蓋一個(gè)方法,要在方法聲明的結(jié)尾增加 override 指令,在下列情況,使用 override 將產(chǎn)生編譯錯(cuò)誤: ● 祖先對(duì)象中不存在該方法 ● 祖先對(duì)象中相同方法是靜態(tài)的 ● 聲明與祖先對(duì)象的(如名字、參數(shù))不匹配 下列代碼演示兩個(gè)簡(jiǎn)單的部件。第一 個(gè)部件聲明了三個(gè)方法,每一個(gè)使用不同的派送方式,第二個(gè)部件繼承第一個(gè)部件,取代了靜態(tài)方法,覆蓋了虛擬方法和動(dòng)態(tài)方法。 type TFirstComponent = class(TCustomControl) procedure Move。 { 靜態(tài)方法 } procedure Flash。 virtual。 { 虛 方 法 } procedure Beep。 dynamic。 { 動(dòng)態(tài)虛擬方法 } end。 TSecondComponent = class(TFirstComponent) procedure Move。 { 聲明了新的方法 } procedure Flash。 override。 { 覆蓋繼承的方法 } procedure Beep。 override。 { 覆蓋繼承的方法 } end。 ⑶ 動(dòng)態(tài)方法 動(dòng)態(tài)方法是稍微不同于虛擬方法的派送機(jī)制。因?yàn)閯?dòng)態(tài)方法沒(méi)有對(duì)象 VMT的入口,它們減少了對(duì)象消耗的內(nèi)存數(shù)量。派送動(dòng)態(tài)方法比派送一般的虛擬方法慢。因此,如果方法調(diào)用很頻繁,你最好將其定義為虛方法。 定義動(dòng)態(tài)方法時(shí),在方法聲明后面增加 dynamic 指令。 與對(duì) 象虛擬方法創(chuàng)建入口不同的是 dynamic 給方法賦了一數(shù)字,并存儲(chǔ)相應(yīng)代碼的地址,動(dòng)態(tài)方法列表只包含新加的和覆蓋的方法入口,繼承的動(dòng)態(tài)方法的派送是通過(guò)查找每一個(gè)祖先的動(dòng)態(tài)方法列表(按與繼承“反轉(zhuǎn)的順序”),因此動(dòng)態(tài)方法用于處理消息(包括 Windows 消息)。實(shí)際上,消息處理過(guò)程的派送方式與動(dòng)態(tài)方法相同,只是定義方法不同 ⑷ 對(duì)象與指針 在 Object Pascal 中,對(duì)象實(shí)際上是指針。編譯器自動(dòng)地為程序創(chuàng)建對(duì)象指針,因此在大多數(shù)情況下,你不需要考慮對(duì)象是指針。但當(dāng)你將對(duì)象作為參數(shù)傳遞時(shí),這就很重要了。 通常,傳遞對(duì)象是按值而非按引用,也就是說(shuō),將對(duì)象聲明為過(guò)程的參數(shù)時(shí),你不能用 var 參數(shù),理由是對(duì)象已經(jīng)是指針引用了。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1