Delphi 控件开发浅入深出(一)有人说过“不会开发控件的 Delphi 程序员不是真正的程序员〞。Delphi 正是由于高度的可扩展性和大量的第三方控件的支持才能吸引无数程序员挑剔的目光。即使是由于工作需要使用其他开发工具的开发者也常常怀念和 Delphi 度过的日日夜夜。接触 Delphi 已经一年多了,从当初对着 Delphi 组件面板上上百个控件不知所措,到现在已经可以根据需要开发一些有一定难度的控件,其中走过的路是十分艰辛的,所以特此写下这篇文章,将自己的经验留给后来者,也算是献给“同门师弟〞的一份厚礼吧!需要说明的一点是:在写这篇文章之前我假设读者已经对面对对象的根本知识有一定的了解,所以对于文章中面对对象相关的概念将不再展开讲述。一、牛刀小试-TURLLabel 控件我们从一个能够添加超的标签控件开始我们的控件开发之旅吧!既然是 Label 我们就从 Tlabel 派生这个控件吧(其实从 TcustomLabel 派生最好,不过出于简单的目的我们这里先从 Tlabel 派生)!1、选择“File〞->“New〞->“Component〞,将弹出如下的对话框:在 Ancestor type 中选择 Tlabel,ClassName 中填入 TURLLabel(名字可以任意取,但是要以 T开头,否那么的话会出现注册控件时候的问题)。这里 Ancestor type 代表控件的基类,TURLLabel 代表控件的名称。2、超的视觉效果是带下划线的文字,所以我们覆盖父类的构造函数,在构造函数里修改控件的字体属性。constructor TUrlLabel.Create(AOwner:TComponent);begin inherited Create(AOwner); Cursor:=crHandPoint; Font.Style:= [fsUnderline]; end;代码解释:〔1〕 inherited Create(AOwner);这句的意思是执行父类的构造函数。我们制作控件的时候,假如覆盖了父类的构造函数,那么在新的构造函数中一定要首先调用父类的构造函数,否那么会引起错误。这是很多初学控件开发的人常常遇到的问题。当您把自己开发的控件从面板上拖放到窗体时,假如跳出一个“Access Violent〞的错误对话框的话,那么十有八九是因为您忘了调用父类的构造函数。〔2〕Cursor:=crHandPoint;Font.Style:= [fsUnderline]; 这三句的意思是修改标签的视觉效果。Cursor:=crHandPoint;是设定当鼠标移动到控件上时鼠标的形状为“手型〞;Font.Style:= [fsUnderline]; 是设定文字的下划线效果。3、既然是超控件,那么我们肯定要能使用户在使用控件的时候能在“Object Inspector〞中对超的 URL 进展...