Delphi控件,我们也可以(4)
2008-02-23 07:20:29来源:互联网 阅读 ()
unit LxTouchLabel;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls, Graphics;
type
TTouchLabel = class(TLabel)
private
{ Private declarations }
FColor : TColor;
FTouchColor : TColor;
FTempColor : TColor;
FTouchFont : TFont;
FTempFont : TFont;
isStoreTouchFont : Boolean;
function GetTouchBKColor : TColor;
function isStoreTouchBKColor : Boolean;
procedure SetTouchBKColor(AColor : TColor);
procedure SetTouchFont(AFont : TFont);
procedure CMMouseEnter(var Message : TMessage); Message CM_MOUSEENTER;
procedure CMMouseLeave(var Message : TMessage); Message CM_MOUSELEAVE;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property Color;
property ParentColor;
property ParentFont;
property TouchBKColor : TColor Read GetTouchBKColor Write SetTouchBKColor
stored isStoreTouchBKColor default clWindow;
property TouchFont : TFont Read FTouchFont Write SetTouchFont
stored isStoreTouchFont;
property ChangeWhileTouch : Boolean Read isStoreTouchFont
Write isStoreTouchFont default True;
end;
procedure ReGISter;
implementation
procedure Register;
begin
RegisterComponents('LX', [TTouchLabel]);
end;
{ TTouchLabel }
constructor TTouchLabel.Create(AOwner: TComponent);
begin
inherited;
FTempColor := clWindow;
FTempFont := TFont.Create;
FTouchFont := TFont.Create;
isStoreTouchFont := True;
end;
destructor TTouchLabel.Destroy;
begin
FTempFont.Free;
FTouchFont.Free;
inherited;
end;
function TTouchLabel.GetTouchBKColor: TColor;
begin
Result := FTouchColor;
end;
procedure TTouchLabel.SetTouchFont(AFont: TFont);
begin
FTouchFont.Assign(AFont);
isStoreTouchFont := True;
end;
procedure TTouchLabel.CMMouseEnter(var Message: TMessage);
begin
inherited;
if not ChangeWhileTouch then exit;
if FColor <> FTouchColor then
begin
FTempColor := Color;
Color := TouchBKColor;
end;
FTempFont.Assign(Font);
Font.Assign(TouchFont);
end;
procedure TTouchLabel.CMMouseLeave(var Message: TMessage);
begin
inherited;
if not ChangeWhileTouch then exit;
if FColor <> FTouchColor then
Color := FTempColor;
Font.Assign(FTempFont);
end;
procedure TTouchLabel.SetTouchBKColor(AColor: TColor);
begin
FTouchColor := AColor;
end;
function TTouchLabel.isStoreTouchBKColor: Boolean;
begin
Result := (FColor <> FTouchColor);
end;
end.
///////////////////////////////////////////////////////////////////////
unit QLXTouchLable;
interface
uses
Windows, Messages, SysUtils, Classes, QControls, QStdCtrls, QGraphics;
type
TTouchLable = class(TLabel)
private
{ Private declarations }
FColor : TColor;
FTouchColor : TColor;
FTempColor : TColor;
FTouchFont : TFont;
FTempFont : TFont;
isStoreTouchFont : Boolean;
function GetTouchColor : TColor;
function isStoreTouchColor : Boolean;
procedure SetTouchColor(AColor : TColor);
procedure SetTouchFont(AFont : TFont);
procedure MouseEnter(AControl: TControl); override;
procedure MouseLeave(AControl: TControl); override;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property Color;
property ParentColor;
property ParentFont;
property TouchColor : TColor Read GetTouchColor Write SetTouchColor
stored isStoreTouchColor default clWindow;
property TouchFont : TFont Read FTouchFont Write SetTouchFont
stored isStoreTouchFont;
property ChangeWhileTouch : Boolean Read isStoreTouchFont
Write isStoreTouchFont default True;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('LX', [TTouchLable]);
end;
{ TTouchLable }
constructor TTouchLable.Create(AOwner: TComponent);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:自制支持文件拖放的VCL组件
下一篇:在窗口标题区添加按钮
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash