Delphi控件 我们也可以(4)

2016-01-29 14:13 9 1 收藏

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

【 tulaoshi.com - Delphi 】

 
下面是我的代码:

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.[next]


///////////////////////////////////////////////////////////////////////

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

来源:http://www.tulaoshi.com/n/20160129/1492770.html

延伸阅读
标签: ASP
       作者:http://www.aspcn.com 飞刀      众所周知,ASP.Net中给我们提供了三个数据控件--DataGrid,Repeater,DataList。在这三个控件中,DataGrid控件的功能最强大,Repeater控件最忠实于模版原样,DataList控件则兼而有之。      DataGrid控件太有名了,...
前一段时间,一个名叫YAI的‘病毒’在我国闹的沸沸扬扬,许多不明真相的人 对他感到神秘莫测,可是究其实质无非也就是一个远程控制软件罢了,只不过他的 服务器端程序隐藏的十分好而已。其实在VB5中有一个基于TCP\IP协议的Winsock控 件,利用他改改属性,写几段代码,我们同样可以来一回YAI. 由于篇幅所限,...
Delphi的出现将一大批程序员带入了Windows下的可视化编程,为一些C&C++的死党程序员所羡慕、感叹。直到C++Builder的出现这些Programer才用到了梦寐以求的编程工具,也将一些不得已"投敌"到Delphi下的程序员又拉回到C++的怀抱。她正真将Windows下的可视化编程和面向对象编程语言有机的融合在一起。但是由于C++Builder面市时间...
1、准备 GPS(Global Positioning System),即全球定位系统,利用24颗GPS卫星的测距和测时功能进行全球定位,在许多系统中,如机场导航系统,出租车辆管理和调度系统、江河流域的灾害信息管理和预测系统中,GPS得到了广泛的应用。本文利用MSCOMM控件实现了GPS数据的采集,可为信息管理和指挥调度等提供定位数据。 本文采用GPS的...
标签: Delphi
  Delphi以其优秀的界面和简单的用法深受广大程序员的喜爱.笔者经过摸索,自做了一个具有动态显示特性的控件。只柙谥鞒绦蛑械饔酶每丶囊桓龇椒纯墒迪侄允尽T诙允镜耐?为了不影响主程序做其他的事情,笔者采用了比较流行的线程技术。  一. 方案  自做一个父类为TEdit的控件,应该有一个Text属性,能自...