hcplabel.pas

来自「图论算法」· PAS 代码 · 共 86 行

PAS
86
字号
unit hcplabel;

interface

uses  windows,Messages,Classes,Controls,StdCtrls;

type
  ThcpLabel = class(TCustomLabel)
  private
    FOnMouseEnter: TNotifyEvent;
    FOnMouseLeave: TNotifyEvent;
    procedure CMMOUSELEAVE(var Message: TMessage); message CM_MOUSELEAVE;
    procedure CMMOUSEENTER(var Message: TMessage); message CM_MOUSEENTER;
  protected
    procedure MouseEnter;
    procedure MouseLeave;
  published
    property Align;
    property Alignment;
    property AutoSize;
    property Caption;
    property Color;
    property DragCursor;
    property DragMode;
    property Enabled;
    property FocusControl;
    property Font;
    property ParentColor;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowAccelChar;
    property ShowHint;
    property Transparent;
    property Visible;
    property WordWrap;
    property OnClick;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDrag;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDrag;
    property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Graph', [Thcplabel]);
end;

procedure ThcpLabel.CMMOUSELEAVE(var Message: TMessage);
begin
  inherited;
  MouseLeave;
end;

procedure ThcpLabel.CMMOUSEENTER(var Message: TMessage);
begin
  inherited;
  MouseEnter;
end;

procedure ThcpLabel.MouseEnter;
begin
  cursor := 1;
  font.color := clBlue;
  if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);
end;

procedure ThcpLabel.MouseLeave;
begin
  cursor := crdefault;
  font.color := clWhite;
  if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?