在Delphi中编写控件的基本方法(1) (转)[@more@]
在Delphi中编写控件的基本方法(1)
[ 作者: 雷小园 添加时间: 2001-5-5 18:01:08 ]
来源:www.cci .NET.com
作为Delphi 程序员,要想进一步提高 编程水平就必须掌握控件的编写方法,本篇文章将通过一个简单的例子来为初学者介绍编写控件的一些基本方法和 模式。
这个例子控件叫TLeiLabel,是在TLabel的基础上增加两个实用的功能:一是使文字具有立体形状,二是使文字具有超链接属性。下面就让我们一步步来实现这些功能。
一、使文字具有立体形状
首先定义类型T3DEffect和属性Style3D分别如下:
T3DEffect=(Normal,Raised,Lowered, Shadowed);
property Style3D:T3DEffect read FStyle3D write SetStyle3D default Normal;
再在private中定义变量:“FStyle3D:T3DEffect;”,并设置SetStyle3D()方法如下,这也是写方法的一般格式:
procedure TLeiLabel.SetStyle3D(Value: T3DEffect);
begin
if FStyle3D <> value then
begin
FStyle3D := value;
invalidate; //表示控件将重画
end;
end;
另外对于带阴影的文字还要定义阴影的偏移量ShadeXOffSet和ShadeYOffSet:
property ShadowXOffSet: integer read FXOffSet write SetFXOffSet default 5;
property ShadowYOffSet: integer read FYOffSet write SetFYOffSet default -5;
写方法SetFXOffSet()、SetFYOffSet()和上面的SetStyle3D()类似。
要重画控件一般要重载Paint方法,此处只是重画文字,我们只需重载DoDrawText方法。
DoDrawText的声明放在Protected中:
procedure DoDrawText(var Rect: TRect; Flags: Longint); overr ide;
此处DoDrawText()根据四种类型(正常、凸起、凹进和阴影)分别画出不同的文字。
二、使文字具有超链接属性
定义一个属性URL表示要链接的网址或E Mail地址。
Property URL : String read FURL write SetURL;
写方法SetURL如下:
procedure TLeiLabel.SetURL(Value: String);
Begin
if FURL <> Value then FURL := Value ;
if FURL <> ' then
Cursor := crHandPoint;
end;
当点击此Label时要打开 浏览器或收发 邮件工具,这便要重载Click方法。
Procedure Click; Override;
procedure TLeiLabel.Click;
[ 作者: 雷小园 添加时间: 2001-5-5 18:01:08 ]
来源:www.cci .NET.com
作为Delphi 程序员,要想进一步提高 编程水平就必须掌握控件的编写方法,本篇文章将通过一个简单的例子来为初学者介绍编写控件的一些基本方法和 模式。
这个例子控件叫TLeiLabel,是在TLabel的基础上增加两个实用的功能:一是使文字具有立体形状,二是使文字具有超链接属性。下面就让我们一步步来实现这些功能。
一、使文字具有立体形状
首先定义类型T3DEffect和属性Style3D分别如下:
T3DEffect=(Normal,Raised,Lowered, Shadowed);
property Style3D:T3DEffect read FStyle3D write SetStyle3D default Normal;
再在private中定义变量:“FStyle3D:T3DEffect;”,并设置SetStyle3D()方法如下,这也是写方法的一般格式:
procedure TLeiLabel.SetStyle3D(Value: T3DEffect);
begin
if FStyle3D <> value then
begin
FStyle3D := value;
invalidate; //表示控件将重画
end;
end;
另外对于带阴影的文字还要定义阴影的偏移量ShadeXOffSet和ShadeYOffSet:
property ShadowXOffSet: integer read FXOffSet write SetFXOffSet default 5;
property ShadowYOffSet: integer read FYOffSet write SetFYOffSet default -5;
写方法SetFXOffSet()、SetFYOffSet()和上面的SetStyle3D()类似。
要重画控件一般要重载Paint方法,此处只是重画文字,我们只需重载DoDrawText方法。
DoDrawText的声明放在Protected中:
procedure DoDrawText(var Rect: TRect; Flags: Longint); overr ide;
此处DoDrawText()根据四种类型(正常、凸起、凹进和阴影)分别画出不同的文字。
二、使文字具有超链接属性
定义一个属性URL表示要链接的网址或E Mail地址。
Property URL : String read FURL write SetURL;
写方法SetURL如下:
procedure TLeiLabel.SetURL(Value: String);
Begin
if FURL <> Value then FURL := Value ;
if FURL <> ' then
Cursor := crHandPoint;
end;
当点击此Label时要打开 浏览器或收发 邮件工具,这便要重载Click方法。
Procedure Click; Override;
procedure TLeiLabel.Click;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-989837/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10752043/viewspace-989837/
本文介绍了在Delphi中创建自定义控件的方法,通过TLeiLabel实例演示了如何让文字显示立体效果及添加超链接功能。首先定义了T3DEffect枚举和Style3D属性控制文字立体样式,并通过重载DoDrawText方法实现绘制效果。其次,通过URL属性实现了超链接功能,并重载Click方法以响应点击事件。
2148

被折叠的 条评论
为什么被折叠?



