


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
創建自己的Dephi構件
可視化編程工具Dephi以強大的功能,眾多的優越特性,深受廣大使用者的喜愛,但如何編寫自己的Dephi構件對許多使用者來說比較陌生,因此,有必要掌握構件的創建方法。一.構件創建的步驟:1.使用NewComponent對話框開始創建選擇File|New彈出ObjectReposity,雙擊ObjectReposity的Component圖標,顯示NewComponent對話框開始創建。2.為構件增加屬性Dephi中用關鍵字Property聲明屬性字段,屬性有read和write可選從句,其語法格式為:PropertyMyProperty:AtypeReadGetPropertywriteSetProperty;GetPropertySetProperty分別為讀寫屬性過程。3.為構件增加方法在Dephi構件創建中增加新的方法,需在interface區的private、protected以及public中的任一部分描述函數原型,若方法可能在以后被重載,則應在尾部加上virtual或dynamic關鍵字,然后在implementation區定義方法的具體實現代碼。4.為構件增加事件在Dephi中,事件也是使用關鍵字Property來聲明。其語法格式為:PropertyOnNewEvent:AeventTypereadFonNewEventwriteFonNewEvent;聲明事件后往往要將windows的消息傳遞與事件聯系起來才能真正實現事件驅動,因此,我們還要增加一種新的特殊類型的動態的“消息管理”方法,其語法格式為:ProcedureMsgPro(varMsg:Tmessage);messageAmsgIndex;其中,關鍵字Message聲明此為一個消息管理方法。AmsgIndex為一整數常數,作windows消息動態索引,當索引為AmsgIndex的消息傳遞至應用程序時便會執行MsgPro過程。5.測試構件測試構件,確信構件是按設計編譯和起作用的。這是構件開發中非常關鍵的一步,為測試構件,要先寫一個用作測試的應用程序,由于不能拉出構件選項板窗口上的構件,還必須人工創建一個構件。6.將新構件添加到構件選項板當構件正常工作并令人感到滿意后,可添加到構件選項板上,從主菜單選擇Component|InstallComponent顯示一個InstallComponent對話框,該對話框能夠添加構件到程序包。二.構件創建實例下面要開發的新構TnewLabel是從TLabel類繼承來的,它與TLabel具有相似的焦點感應能力:當鼠標移到Tlabel上時,文字顏色發生改變;當鼠標離開時,顏色恢復。它還將增加一個EnterTextColor屬性以及OnMouseLeave和OnMouseLeave事件。屬性EnterTextColor中可以輸入鼠標進入構件時文字的顏色,OnMouseEnter、OnMouseLeave事件中則可輸入程序員自己的代碼來指定鼠標進入和離開構件時的動作。1.選中Component菜單項中的NewComponent選項,在AncestorType框填入Tlabel,在ClassName框中填入TnewLabel,在PalettePage框中填入Samples,在UnitFileName框中填入NewCom.pas,然后單擊按鈕CreateUnit就進入到代碼編輯狀態。2.使用Tools菜單中ImageEditor來創建編輯文件NewCom.dcr,為TnewLabel類建立位圖。3.增加新屬性EnterTextColor,并為讀寫屬性增加私有方法SetEnterTextColor和私有變量FenterTextColor。加入如下的代碼:PrivateFenterTextColor:Tcolor;SetEnterTextColor(Acolor:Tcolor);PublishedPropertyEnterTextColor:TcolorReadFenterTextColorWriteSetEnterTextColor(Acolor);…ImplementationProcedureTnewLabel.SetEnterTextColor(Acolor:Tcolor);BeginFEnterTextColor:=Acolor;End;4.增加保護方法MouseEnter、MouseLeave、CM_MouseEnter和CM_MouseLeave加入如下的代碼:protectedProcedureMouseEnter;virtual;ProcedureMouseLeave;virtual;ProcedureCM_MouseEnter(varmsg:Tmessage);MessageCM_MouseEnter;ProcedureCM_MouseLeave(varmsg:Tmessage);MessageCM_MouseLeave;…ImPlementationProcedureMouseEnter;BeginIfassigned(FonMouseEnter)thenFonMouseEnter(self);End;ProcedureCM_MouseEnter(varmsg:Tmessage);BeginInherited;MouseEnter;End;5.增加事件OnMouseEnter和OnMouseLeave加入如下的代碼:PrivateFonMouseEnter,FonMouseLeave:TnotifyEvent;PublishedOnMouseEnter:TnotifyEventReadFonMouseEnterwriteFonMouseEnter;OnMouseLeave:TnotifyEventReadFonMouseLeaveWriteFonMouseLeave;6.MouseLeaveCM_MouseLeave的實現代碼與MouseEnterCM_MouseEnter的類似。Dephi為所有消息提供缺省處理。在寫消息句柄時應禁止缺省處理,因此在CM_MouseEnter和CM_MouseLeave過程中調用了inherited。重載構造和析構方法的代碼如下:PublicConstructorCreate(Aowner:Tcomponent);override;DestructorDestroy;override;……ImplementationConstructorCreate(Aowner:Tcomponent);BeginInheritedCreate(Aowner);FleaveTextColor:=Font.Color;FenterTextColor:=Font.Color;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年舞蹈教師資格證考試模擬試卷:舞蹈教育實習與教學反思考察題
- 2025年小學英語畢業考試模擬試卷-英語寫作教學資源2025年更新與應用
- 2025年成人高考《語文》模擬沖刺題庫:作文高分策略與審題技巧
- 2025年小學教師資格考試《綜合素質》歷年真題匯編與高分技巧試卷
- 2025年小學語文畢業升學考試全真模擬卷(古詩詞背誦默寫實戰演練)
- 2025年征信考試題庫:征信數據質量控制深度解析與模擬試題
- 成人高考《語文》2025年綜合運用題庫:詩詞歌賦賞析與理解
- 2025年調酒師職業技能大賽高級實踐操作試題試卷
- 2025年大學輔導員招聘考試:教育心理理論與實際應用試題集試卷
- 2025年安徽b2從業資格證模擬考試題目
- 2022年陜西省普通高校職業教育單獨招生統一考試英語試題及答案
- 大健康特色產業園項目商業計劃書
- 2025年上半年上海青浦新城發展(集團)限公司自主招聘9名易考易錯模擬試題(共500題)試卷后附參考答案
- 墻紙墻布施工工藝標準化流程
- 水泥混凝土路面翻修施工方案詳解
- 《射雕英雄傳》好書讀后感
- DB51T 2049-2015 建筑消防設施檢測規范
- 【MOOC】風景背后的地貌學-華中師范大學 中國大學慕課MOOC答案
- 護理感動案例
- 美國租房合同中文
- 科室一級護理質控匯報
評論
0/150
提交評論