当前位置: 首页 > 图文教程 > 开发语言 > Delphi > Delphi控件,我们也可以(4)

Delphi
在线播放器DIY
关于VisiBroker For Delphi的使用(3)
关于VisiBroker For Delphi的使用(2)
关于VisiBroker For Delphi的使用(1)
Delphi的两个实用技巧(2)巧用Windows的API函数
Delphi的两个实用技巧(1)播放Flash
delphi学习:两种方法使用xml文档
Delphi与Word之间的融合技术
Delphi中动态链接库(DLL)的建立和使用
Delphi基础:Window 消息大全使用详解下
Delphi基础:Window 消息大全使用详解上
教你在DELPHI中如何调用系统对话框
Delphi开发单机瘦小数据库程序要点
用Delphi + DirectX开发简单RPG游戏
Delphi7从入门到精通之认识Delphi编辑器
Delphi7从入门到精通之历数Delphi七个版本
Delphi学习:图像放大漫游攻略
用编程来实现24小时制到12小时制的转换
一个实际的OLE服务器的开发
Delphi一点通:如何将源代码学好

Delphi控件,我们也可以(4)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 101 ::
收藏到网摘: n/a

 
下面是我的代码:

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); overri