📄 bsskinboxctrls.~pas
字号:
{*******************************************************************}
{ }
{ Almediadev Visual Component Lifbrary }
{ BusinessSkinForm }
{ Version 1.99 }
{ }
{ Copyright (c) 2000-2003 Almediadev }
{ ALL RIGHTS RESERVED }
{ }
{ Home: http://www.almdev.com }
{ Support: support@almdev.com }
{ }
{*******************************************************************}
unit bsSkinBoxCtrls;
{$P+,S-,W-,R-}
{$WARNINGS OFF}
{$HINTS OFF}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ExtCtrls, bsSkinData, StdCtrls, bsSkinCtrls, CommCtrl, ComCtrls, Mask,
ImgList, bsCalendar;
type
TbsDrawSkinItemEvent = procedure(Cnvs: TCanvas; Index: Integer;
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState) of object;
TbsCBButtonX = record
R: TRect;
MouseIn: Boolean;
Down: Boolean;
end;
TbsOnEditCancelMode = procedure(C: TControl) of object;
TbsCustomEdit = class(TCustomMaskEdit)
protected
FOnUp: TNotifyEvent;
FOnDown: TNotifyEvent;
FOnKillFocus: TNotifyEvent;
FOnEditCancelMode: TbsOnEditCancelMode;
FDown: Boolean;
FReadOnly: Boolean;
FEditTransparent: Boolean;
procedure SetEditTransparent(Value: Boolean);
procedure WMSETFOCUS(var Message: TMessage); message WM_SETFOCUS;
procedure WMKILLFOCUS(var Message: TMessage); message WM_KILLFOCUS;
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure CNCtlColorEdit(var Message:TWMCTLCOLOREDIT); message CN_CTLCOLOREDIT;
procedure CreateParams(var Params: TCreateParams); override;
procedure Change; override;
procedure WMCHAR(var Message:TWMCHAR); message WM_CHAR;
procedure WMSetText(var Message:TWMSetText); message WM_SETTEXT;
procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
procedure WMKeyUp(var Message: TWMKeyUp); message WM_KEYUP;
procedure WMMove(var Message: TMessage); message WM_MOVE;
procedure WMCut(var Message: TMessage); message WM_Cut;
procedure WMPaste(var Message: TMessage); message WM_PASTE;
procedure WMClear(var Message: TMessage); message WM_CLEAR;
procedure WMUndo(var Message: TMessage); message WM_UNDO;
procedure WMLButtonDown(var Message: TMessage); message WM_LBUTTONDOWN;
procedure WMLButtonUp(var Message: TMessage); message WM_LBUTTONUP;
procedure WMMOUSEMOVE(var Message: TMessage); message WM_MOUSEMOVE;
procedure WMSetFont(var Message: TWMSetFont); message WM_SETFONT;
procedure CMCancelMode(var Message: TCMCancelMode); message CM_CANCELMODE;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
procedure Invalidate; override;
property ReadOnly read FReadOnly write FReadOnly;
property EditTransparent: Boolean read FEditTransparent write SetEditTransparent;
property OnUp: TNotifyEvent read FOnUp write FOnUp;
property OnDown: TNotifyEvent read FOnDown write FOnDown;
property OnEditCancelMode: TbsOnEditCancelMode
read FOnEditCancelMode write FOnEditCancelMode;
published
{ Published declarations }
end;
TbsSkinNumEdit = class(TbsCustomEdit)
protected
FOnUpClick: TNotifyEvent;
FOnDownClick: TNotifyEvent;
FEditorEnabled: Boolean;
function IsValidChar(Key: Char): Boolean;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure WMMOUSEWHEEL(var Message: TMessage); message WM_MOUSEWHEEL;
public
Float: Boolean;
constructor Create(AOwner: TComponent);
property OnUpClick: TNotifyEvent read FOnUpClick write FOnUpClick;
property OnDownClick: TNotifyEvent read FOnDownClick write FOnDownClick;
property EditorEnabled: Boolean read FEditorEnabled write FEditorEnabled default True;
end;
TbsSkinCustomEdit = class(TbsCustomEdit)
protected
FOnButtonClick: TNotifyEvent;
FButtonRect: TRect;
FButtonMode: Boolean;
FButtonDown: Boolean;
FButtonActive: Boolean;
FEditRect: TRect;
FMouseIn: Boolean;
FIndex: Integer;
FSD: TbsSkinData;
FSkinDataName: String;
Picture: TBitMap;
FOnMouseEnter, FOnMouseLeave: TNotifyEvent;
FDefaultFont: TFont;
FUseSkinFont: Boolean;
FDefaultWidth: Integer;
FDefaultHeight: Integer;
FAlignment: TAlignment;
procedure SetAlignment(Value: TAlignment);
procedure SetDefaultWidth(Value: Integer);
procedure SetDefaultHeight(Value: Integer);
procedure OnDefaultFontChange(Sender: TObject);
procedure SetDefaultFont(Value: TFont);
procedure CalcRects;
procedure SetButtonMode(Value: Boolean);
procedure SetPasswordChar(Value: Char);
function GetPasswordChar: Char;
procedure SetSkinData(Value: TbsSkinData); virtual;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure GetSkinData;
procedure CreateParams(var Params: TCreateParams); override;
procedure WMNCCALCSIZE(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure WMNCPAINT(var Message: TMessage); message WM_NCPAINT;
procedure WMNCLBUTTONDOWN(var Message: TWMNCLBUTTONDOWN); message WM_NCLBUTTONDOWN;
procedure WMNCLBUTTONDBCLK(var Message: TWMNCLBUTTONDOWN); message WM_NCLBUTTONDBLCLK;
procedure WMNCLBUTTONUP(var Message: TWMNCLBUTTONUP); message WM_NCLBUTTONUP;
procedure WMNCMOUSEMOVE(var Message: TWMNCMOUSEMOVE); message WM_NCMOUSEMOVE;
procedure WMMOUSEMOVE(var Message: TWMNCMOUSEMOVE); message WM_MOUSEMOVE;
procedure WMNCHITTEST(var Message: TWMNCHITTEST); message WM_NCHITTEST;
procedure WMSETFOCUS(var Message: TMessage); message WM_SETFOCUS;
procedure WMKILLFOCUS(var Message: TMessage); message WM_KILLFOCUS;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
public
//
LOffset, ROffset: Integer;
ClRect: TRect;
SkinRect, ActiveSkinRect: TRect;
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
FontColor, DisabledFontColor: TColor;
ActiveFontColor: TColor;
ButtonRect: TRect;
ActiveButtonRect: TRect;
DownButtonRect: TRect;
UnEnabledButtonRect: TRect;
//
procedure DrawSkinEdit(C: TCanvas; ADrawText: Boolean);
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ChangeSkinData; virtual;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
procedure Invalidate; override;
property BorderStyle;
//
property DefaultFont: TFont read FDefaultFont write SetDefaultFont;
property UseSkinFont: Boolean read FUseSkinFont write FUseSkinFont;
property DefaultWidth: Integer read FDefaultWidth write SetDefaultWidth;
property DefaultHeight: Integer read FDefaultHeight write SetDefaultHeight;
property ButtonMode: Boolean read FButtonMode write SetButtonMode;
property SkinData: TbsSkinData read FSD write SetSkinData;
property SkinDataName: String read FSkinDataName write FSkinDataName;
//
property EditPasswordChar: Char read GetPasswordChar write SetPasswordChar;
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
property ReadOnly;
property Align;
property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
property Font;
property Anchors;
property AutoSelect;
property BiDiMode;
property CharCase;
property Constraints;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property HideSelection;
property ImeMode;
property ImeName;
property MaxLength;
property OEMConvert;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property Text;
property Visible;
property OnButtonClick: TNotifyEvent read FOnButtonClick
write FOnButtonClick;
property OnChange;
property OnClick;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
TbsSkinEdit = class(TbsSkinCustomEdit)
published
property DefaultFont;
property UseSkinFont;
property DefaultWidth;
property DefaultHeight;
property ButtonMode;
property SkinData;
property SkinDataName;
property EditPasswordChar;
property OnMouseEnter;
property OnMouseLeave;
property ReadOnly;
property Align;
property Alignment;
property Font;
property Anchors;
property AutoSelect;
property BiDiMode;
property CharCase;
property Constraints;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property HideSelection;
property ImeMode;
property ImeName;
property MaxLength;
property OEMConvert;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property Text;
property Visible;
property OnButtonClick;
property OnChange;
property OnClick;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
TbsSkinMemo = class(TMemo)
protected
FBitMapBG: Boolean;
FReadOnly: Boolean;
FMouseIn: Boolean;
FIndex: Integer;
FSD: TbsSkinData;
FSkinDataName: String;
Picture: TBitMap;
FOnMouseEnter, FOnMouseLeave: TNotifyEvent;
FVScrollBar: TbsSkinScrollBar;
FDown: Boolean;
FDefaultFont: TFont;
FUseSkinFont: Boolean;
procedure OnDefaultFontChange(Sender: TObject);
procedure SetDefaultFont(Value: TFont);
procedure SkinNCPaint(C: TCanvas);
procedure SkinFramePaint(C: TCanvas);
procedure SetBitMapBG(Value: Boolean);
procedure UpDateScrollRange;
procedure SetVScrollBar(Value: TbsSkinScrollBar);
procedure OnVScrollBarChange(Sender: TObject);
procedure SetSkinData(Value: TbsSkinData);
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure Change; override;
procedure GetSkinData;
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure CNCtlColorEdit(var Message:TWMCTLCOLOREDIT); message CN_CTLCOLOREDIT;
procedure WMCHAR(var Message:TMessage); message WM_CHAR;
procedure WMNCCALCSIZE(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure CreateParams(var Params: TCreateParams); override;
procedure WMNCPAINT(var Message: TWMNCPAINT); message WM_NCPAINT;
procedure WMSETFOCUS(var Message: TMessage); message WM_SETFOCUS;
procedure WMKILLFOCUS(var Message: TMessage); message WM_KILLFOCUS;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure WMMove(var Msg: TWMMove); message WM_MOVE;
procedure WMSize(var Msg: TWMSize); message WM_SIZE;
procedure WMLBUTTONDOWN(var Message: TMessage); message WM_LBUTTONDOWN;
procedure WMLBUTTONUP(var Message: TMessage); message WM_LBUTTONUP;
procedure WMMOUSEMOVE(var Message: TMessage); message WM_MOUSEMOVE;
procedure WMMOUSEWHEEL(var Message: TMessage); message WM_MOUSEWHEEL;
procedure WMSetText(var Message:TWMSetText); message WM_SETTEXT;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -