📄 bsskinctrls.pas
字号:
write FSkinPopupMenu;
property TrackButtonMode: Boolean read FTrackButtonMode
write SetTrackButtonMode;
property OnShowTrackMenu: TNotifyEvent read FOnShowTrackMenu
write FOnShowTrackMenu;
property OnHideTrackMenu: TNotifyEvent read FOnHideTrackMenu
write FOnHideTrackMenu;
end;
TbsSkinCheckRadioBox = class(TbsSkinCustomControl)
protected
FImages: TCustomImageList;
FImageIndex: Integer;
FFLat: Boolean;
FClicksDisabled: Boolean;
FCanFocused: Boolean;
FMouseIn: Boolean;
FGroupIndex: Integer;
FOnClick: TNotifyEvent;
FChecked: Boolean;
CIRect, NewTextArea: TRect;
FRadio: Boolean;
MorphTimer: TTimer;
FMorphKf: Double;
procedure SetImageIndex(Value: Integer);
procedure SetImages(Value: TCustomImageList);
procedure SetFlat(Value: Boolean);
procedure DoMorph(Sender: TObject);
procedure StartMorph;
procedure StopMorph;
function IsFocused: Boolean;
procedure SkinDrawCheckImage(X, Y: Integer; Cnvs: TCanvas; IR: TRect; DestCnvs: TCanvas);
procedure SetCheckState; virtual;
procedure SetCanFocused(Value: Boolean);
procedure SetRadio(Value: Boolean);
procedure SetChecked(Value: Boolean);
procedure CreateImage(B: TBitMap; R: TRect; AMouseIn: Boolean);
procedure CreateImage2(B: TBitMap; R: TRect; AChecked: Boolean);
procedure UnCheckAll;
procedure GetSkinData; override;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure ReDrawControl;
procedure CalcSize(var W, H: Integer); override;
procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); override;
procedure WMSETFOCUS(var Message: TWMSETFOCUS); message WM_SETFOCUS;
procedure WMKILLFOCUS(var Message: TWMKILLFOCUS); message WM_KILLFOCUS;
procedure WMMOVE(var Msg: TWMMOVE); message WM_MOVE;
procedure WMEraseBkgnd(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure WndProc(var Message: TMessage); override;
procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR;
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
function EnableMorphing: Boolean;
public
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
FontColor, ActiveFontColor, FrameFontColor, UnEnabledFontColor: TColor;
ActiveSkinRect, CheckImageArea, TextArea,
CheckImageRect, UnCheckImageRect: TRect;
ActiveCheckImageRect, ActiveUnCheckImageRect: TRect;
UnEnabledCheckImageRect, UnEnabledUnCheckImageRect: TRect;
Morphing: Boolean;
MorphKind: TbsMorphKind;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ChangeSkinData; override;
procedure Paint; override;
procedure PaintSkinTo(C: TCanvas; X, Y: Integer; AChecked: Boolean);
published
property Images: TCustomImageList read FImages write SetImages;
property ImageIndex: Integer read FImageIndex write SetImageIndex;
property Flat: Boolean read FFlat write SetFlat;
property PopupMenu;
property ShowHint;
property TabStop;
property TabOrder;
property CanFocused: Boolean read FCanFocused write SetCanFocused;
property Action;
property Radio: Boolean read FRadio write SetRadio;
property Checked: Boolean read FChecked write SetChecked;
property GroupIndex: Integer read FGroupIndex write FGroupIndex;
property Caption;
property OnClick: TNotifyEvent read FOnClick write FOnClick;
property Align;
property Enabled;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnResize;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnEnter;
property OnExit;
end;
TbsSkinGauge = class(TbsSkinCustomControl)
protected
FUseSkinSize: Boolean;
FMinValue, FMaxValue, FValue: Integer;
FVertical: Boolean;
FProgressText: String;
FShowPercent: Boolean;
FShowProgressText: Boolean;
procedure SetShowProgressText(Value: Boolean);
procedure SetShowPercent(Value: Boolean);
procedure SetProgressText(Value: String);
procedure SetVertical(AValue: Boolean);
procedure SetMinValue(AValue: Integer);
procedure SetMaxValue(AValue: Integer);
procedure SetValue(AValue: Integer);
procedure GetSkinData; override;
procedure CreateImage(B: TBitMap);
procedure CalcSize(var W, H: Integer); override;
procedure DrawProgressText(C: TCanvas; AValue: Integer);
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure CreateControlSkinImage(B: TBitMap); override;
procedure WMEraseBkgnd(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
function GetPaintValue: Integer; virtual;
public
ProgressRect, ProgressArea: TRect;
NewProgressArea: TRect;
BeginOffset, EndOffset: Integer;
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
FontColor: TColor;
ProgressTransparent: Boolean;
ProgressTransparentColor: TColor;
ProgressStretch: Boolean;
constructor Create(AOwner: TComponent); override;
function CalcProgressRect(R: TRect; AV: Boolean; AValue: Integer): TRect;
procedure Paint; override;
published
property UseSkinSize: Boolean read FUseSkinSize write FUseSkinSize;
property ProgressText: String read FProgressText write SetProgressText;
property ShowProgressText: Boolean read FShowProgressText write SetShowProgressText;
property ShowPercent: Boolean read FShowPercent write SetShowPercent;
property MinValue: Integer read FMinValue write SetMinValue;
property MaxValue: Integer read FMaxValue write SetMaxValue;
property Value: Integer read FValue write SetValue;
property Vertical: Boolean read FVertical write SetVertical;
property Align;
property Enabled;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnResize;
property PopupMenu;
property ShowHint;
end;
TbsSkinTextLabel = class(TGraphicControl)
private
FIndex: Integer;
FSD: TbsSkinData;
FSkinDataName: String;
FDefaultFont: TFont;
FUseSkinFont: Boolean;
//
FLines: TStrings;
FAlignment: TAlignment;
FAutoSize: Boolean;
FLayout: TTextLayout;
FWordWrap: Boolean;
procedure SetSkinData(Value: TbsSkinData);
procedure SetDefaultFont(Value: TFont);
procedure SetLines(Value: TStrings);
procedure SetAlignment(Value: TAlignment);
procedure SetLayout(Value: TTextLayout);
procedure SetWordWrap(Value: Boolean);
procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
procedure OnTextChange(Sender: TObject);
protected
function GetLabelText: string; virtual;
procedure Loaded; override;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure SetAutoSize(Value: Boolean); virtual;
procedure DoDrawText(var Rect: TRect; Flags: Longint);
public
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
FontColor: TColor;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Canvas;
procedure AdjustBounds; dynamic;
procedure ChangeSkinData;
procedure GetSkinData;
procedure Paint; override;
published
property UseSkinFont: Boolean read FUseSkinFont write FUseSkinFont;
property Lines: TStrings read FLines write SetLines;
property DefaultFont: TFont read FDefaultFont write SetDefaultFont;
property SkinData: TbsSkinData read FSD write SetSkinData;
property SkinDataName: String read FSkinDataName write FSkinDataName;
property Font;
property Align;
property Alignment: TAlignment read FAlignment write SetAlignment
default taLeftJustify;
property AutoSize: Boolean read FAutoSize write SetAutoSize default True;
property Layout: TTextLayout read FLayout write SetLayout default tlTop;
property WordWrap: Boolean read FWordWrap write SetWordWrap default False;
property Anchors;
property BiDiMode;
property Constraints;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property ParentBiDiMode;
property ParentColor;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property Visible;
property OnClick;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
TbsSkinLinkImage = class(TImage)
private
FURL: String;
protected
procedure Click; override;
public
constructor Create(AOwner : TComponent); override;
published
property URL: string read FURL write FURL;
end;
TbsSkinLinkLabel = class(TCustomLabel)
protected
FMouseIn: Boolean;
FIndex: Integer;
FSD: TbsSkinData;
FSkinDataName: String;
FDefaultFont: TFont;
FUseSkinFont: Boolean;
FDefaultActiveFontColor: TColor;
FURL: String;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure SetSkinData(Value: TbsSkinData);
procedure SetDefaultFont(Value: TFont);
property Transparent;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure GetSkinData;
procedure DoDrawText(var Rect: TRect; Flags: Longint); override;
public
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
FontColor, ActiveFontColor: TColor;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ChangeSkinData;
procedure Click; override;
published
property UseSkinFont: Boolean read FUseSkinFont write FUseSkinFont;
property DefaultActiveFontColor: TColor
read FDefaultActiveFontColor write FDefaultActiveFontColor;
property URL: String read FURL write FURL;
property DefaultFont: TFont read FDefaultFont write SetDefaultFont;
property SkinData: TbsSkinData read FSD write SetSkinData;
property SkinDataName: String read FSkinDataName write FSkinDataName;
property Font;
property Align;
property Alignment;
property Anchors;
property AutoSize;
property BiDiMode;
property Caption;
property Color;
property Constraints;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property FocusControl;
property ParentBiDiMode;
property ParentColor;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowAccelChar;
property ShowHint;
property Layout;
property Visible;
property WordWrap;
property OnClick;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
TbsSkinButtonLabel = class(TGraphicControl)
protected
FMouseIn, FDown: Boolean;
FIndex: Integer;
FSD: TbsSkinData;
FSkinDataName: String;
FDefaultFont: TFont;
FUseSkinFont: Boolean;
FDefaultActiveFontColor: TColor;
FGlyph: TBitMap;
FNumGlyphs: TbsNumGlyphs;
FMargin: Integer;
FSpacing: Integer;
FLayout: TbsButtonLayout;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure SetSkinData(Value: TbsSkinData);
procedure SetDefaultFont(Value: TFont);
procedure SetLayout(Value : TbsButtonLayout);
procedure SetMargin(Value: Integer);
procedure SetSpacing(Value: Integer);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -