有人說過「不會(huì)開發(fā)控制項(xiàng)的Delphi程式設(shè)計(jì)師不是真正的程式設(shè)計(jì)師」。 Delphi正是由於高度的可擴(kuò)展性和大量的第三方控制的支援才能吸引無數(shù)程式設(shè)計(jì)師挑剔的目光。即使是因?yàn)楣ぷ餍枰褂闷渌_發(fā)工具的開發(fā)者也常常懷念和Delphi度過的日日夜夜。接觸Delphi已經(jīng)一年多了,從當(dāng)初對(duì)著Delphi組件面板上上百個(gè)控件不知所措,到現(xiàn)在已經(jīng)可以根據(jù)需要開發(fā)一些有一定難度的控件,其中走過的路是十分艱辛的,所以特此寫下這篇文章,將自己的經(jīng)驗(yàn)留給後來者,也算是獻(xiàn)給「同門師弟」的一份厚禮吧!
需要說明的一點(diǎn)是:在寫這篇文章之前我假設(shè)讀者已經(jīng)對(duì)物件導(dǎo)向的基本知識(shí)有一定的了解,所以對(duì)於文章中物件導(dǎo)向相關(guān)的概念將不再展開敘述。
一、牛刀小試-TURLLabel控制
我們從一個(gè)能夠新增超連結(jié)的標(biāo)籤控制項(xiàng)開始我們的控制開發(fā)之旅吧!
既然是Label我們就從Tlabel派生這個(gè)控件吧(其實(shí)從TcustomLabel派生最好,不過出於簡單的目的我們這裡先從Tlabel派生)!
1、選擇「File」->「New」-??>「Component」,將彈出如下的對(duì)話框:
在Ancestor type中選擇Tlabel,ClassName中填入TURLLabel(名字可以任意取,但是要以T開頭,否則的話會(huì)出現(xiàn)註冊控制時(shí)候的問題)。這裡Ancestor type代表控制項(xiàng)的基底類,TURLLabel代表控制項(xiàng)的名稱。
2、超連結(jié)的視覺效果是帶下劃線的文字,所以我們覆蓋父類別的建構(gòu)函數(shù),在建構(gòu)函數(shù)裡修改控制項(xiàng)的字體屬性。