人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

通過案例看VCL組件開發全過程(一)

通過案例看VCL組件開發全過程(一)

更新時間:2022-09-03 文章作者:未知 信息來源:網絡 閱讀次數:


   這篇文章算是對我前段時間學習的一個學習總結,以及對自己學習過程的一個回顧。本文通過一個簡單的例子來盡可能的展示VCL組件開發的各個方面,本文針對即將學習組件開發的初學者,如果你已經熟悉組件開發或認為本文內容過于基礎簡單,那么本文對你毫無用處。閱讀本文,假設你已經熟悉delphi的普通程序設計以及vcl的結構層次,還有一些重要的關鍵字:published、property等。(注:本文內容建立在delphi5.0及以上版本)



   在這篇文章中我們將建立一個和時間有關的組件,這個組件通過設置它的不同狀態有以下基本功能:1、顯示系統的當前時間(包括設置鬧鐘)。2、跑表。3、倒計時。這是一個簡單的例子,然而我們將在這個例子中盡可能多的用到delphi在組件開發中的多種特性,你可以通過以下列舉出的本文涉及特性有選擇的閱讀:

   ·組件和組件包

   ·組件的屬性類別

   ·組件的屬性編輯器

   ·組件編輯器



一、組件和組件包,以及一些你應該知道的文件類型:

組件和組件包的關系就如同普通工程中unit和工程文件的關系一樣,通常你所安裝的組件都是以組件包的形式發布的,一個組件包中可以有很多個組件,在組件開發中,組件包就是項目的工程文件.為了開始開發我們的組件(我們把他叫做TClock)并將它包括在我們自己的組件包(ClockPackage)中,我們選擇Fileànewàother在彈出的窗口中的New頁選擇Package新建一個組件包,得到一個組件包窗口,查看這個組件包的原文件(.dpk),得到以下代碼:

package ClockPackage;



{$R *.res}

{$ALIGN 8}

{$ASSERTIONS ON}

…….

…….

{$DESCRIPTION 'Our Clock Pack'}

{$IMPLICITBUILD OFF}



requires

  rtl;



end.

這個文件其實就是組件開發中的工程文件,requires關鍵字指示了組件包所需組件包的列表,隨著向組件包中加入組件(類似于單元文件),你還會看到contains關鍵字,指示了組件包所包含的組件,你可以通過組件包窗口中的add和remove按紐來添加新的組件和刪除已有的組件。另外這個代碼中所包含的大量的編譯器開關大多都可以在組件包窗體上的Options中設置。這里需要補充說明的是組件包的3種重要屬性(都在Options中):Designtime Only、Runtime Only、Designtime and runtime(這3個詞的意思有英語基礎的朋友應該都知道吧),對于大多數的組件包我們只要選擇最后一個就可以了,然而有些組件包設計為只運行時(這樣你用這套組件開發的程序不能脫離組件而單獨運行,組件包也不能被安裝),有些組件包被設計為只設計時(這將在后文有更詳細的說明)。

了解了組件和組件包,我們對組件開發中可能出現的一些你沒有見過的文件做一些說明:dpk文件既組件包的原代碼;bpl文件,組件包編譯后的結果,在沒有發布dpk的情況下可以通過bpl來安裝組件包到delphi(ProjectàOptionsàPackagesàadd);pas在這里就是組件包中組件的原代碼了;dcu為pas編譯后的結果,在你選擇將組件包含進組件包時(contains關鍵字),你可以選擇發布原代碼或是不發布(dcu文件);dcp如果你將組件作為運行時組件,連接器將使用該文件。



二、開始開發組件:

了解了上面的知識后,我們就可以開始開發組件了!在組件窗體中單擊add,選擇NewComponent頁,在第一個組合框中選擇我們的組件將要繼承自哪個類(通常新的組件是通過繼承已有的組件來開發的),由于這個組件的主要作用是要顯示時間、跑表、倒計時種的文字信息,所以我們選擇繼承自TCustomLabel(由于我們并不需要Tlabel的全部功能,我們選擇了能夠隱藏Tlabel屬性并有選擇的發布它的屬性的TcustomLabel類)。接下來為我們的新組件取一個名字Tclock,然后指定我們想把組件安裝到哪一個頁中,這里我們自己鍵入一個ClockAndTime頁,這將出現在RegisterComponents過程中(后面會詳細說明),選擇好文件保存的路徑后(最好把它和組件dpk包放在同一目錄)確認。這是組件包窗體中的contains下已經多了我們剛才建立的組件的文件,雙擊它開始編寫代碼。

在代碼中我們需要注意在interface部分的一個新的過程:procedure Register;(注意:delphi規定Register的R必須大寫,這是一個保留字),這個過程是作為每一個組件所必須有的,它完成組件的注冊,包括組件本身以及如屬性編輯器等多種組件特性的注冊):

procedure Register;

begin

  RegisterComponents('ClockAndTime', [TClock]);

//這個過程注冊組件本身,注意到前面定義的ClockAndTime頁了嗎?

  //這里在后面還會出現一些新的過程,包括注冊組件的屬性類別等等。

end;


在下一篇中我們將給出這個組件的全部原代碼。


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 和平县| 天全县| 兴化市| 白水县| 灌南县| 金山区| 邹城市| 盐边县| 乐陵市| 兴国县| 延吉市| 郎溪县| 淳化县| 江北区| 土默特左旗| 铁力市| 重庆市| 井冈山市| 徐水县| 新丰县| 双柏县| 龙川县| 钟山县| 衡水市| 海兴县| 新民市| 利川市| 宾阳县| 凤庆县| SHOW| 徐水县| 夏河县| 师宗县| 榆中县| 灵武市| 兴业县| 桐城市| 内丘县| 荥阳市| 南通市| 蓝田县|