程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi控件,我們也可以(4) (1)

Delphi控件,我們也可以(4) (1)

編輯: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.



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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved