📄 bsskinctrls.pas
字号:
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
TbsSkinTrackBar = class(TbsSkinCustomControl)
protected
FClicksDisabled: Boolean;
FCanFocused: Boolean;
Offset1, Offset2, BOffset: Integer;
BR: TRect;
FMinValue, FMaxValue, FValue: Integer;
FVertical: Boolean;
FMouseSupport, FDown: Boolean;
OMPos: Integer;
OldBOffset: Integer;
FOnChange: TNotifyEvent;
FJumpWhenClick: Boolean;
function IsFocused: Boolean;
procedure SetCanFocused(Value: Boolean);
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;
function CalcButtonRect(R: TRect): TRect;
function CalcValue(AOffset: Integer): Integer;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure WMMOUSEWHEEL(var Message: TMessage); message WM_MOUSEWHEEL;
procedure WMSETFOCUS(var Message: TWMSETFOCUS); message WM_SETFOCUS;
procedure WMKILLFOCUS(var Message: TWMKILLFOCUS); message WM_KILLFOCUS;
procedure WndProc(var Message: TMessage); override;
procedure CMWantSpecialKey(var Msg: TCMWantSpecialKey); message CM_WANTSPECIALKEY;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure CreateControlSkinImage(B: TBitMap); override;
public
TrackArea, NewTrackArea, ButtonRect, ActiveButtonRect: TRect;
constructor Create(AOwner: TComponent); override;
published
property JumpWhenClick: Boolean read FJumpWhenClick write FJumpWhenClick;
property PopupMenu;
property ShowHint;
property TabStop;
property TabOrder;
property CanFocused: Boolean read FCanFocused write SetCanFocused;
property MouseSupport: Boolean read FMouseSupport write FMouseSupport;
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 OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnResize;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
end;
TbsSkinScrollBar = class(TbsSkinCustomControl)
private
FNormalSkinDataName: String;
FBothSkinDataName: String;
Offset1, Offset2, BOffset: Integer;
NewTrackArea: TRect;
FDown: Boolean;
OMPos, OldPosition, FScrollWidth: Integer;
OldBOffset: Integer;
MX, MY: Integer;
MouseD: Boolean;
protected
WaitMode: Boolean;
FBothMarkerWidth: Integer;
FClicksDisabled: Boolean;
FCanFocused: Boolean;
//
FOnChange: TNotifyEvent;
FOnUpButtonClick: TNotifyEvent;
FOnDownButtonClick: TNotifyEvent;
FOnLastChange: TNotifyEvent;
FOnPageUp: TNotifyEvent;
FOnPageDown: TNotifyEvent;
//
TimerMode: Integer;
ActiveButton, OldActiveButton, CaptureButton: Integer;
Buttons: array[0..2] of TbsControlButton;
FMin, FMax, FSmallChange,
FLargeChange, FPosition: Integer;
FKind: TScrollBarKind;
FPageSize: Integer;
procedure SetBoth(Value: Boolean);
procedure SetBothMarkerWidth(Value: Integer);
function IsFocused: Boolean;
procedure SetCanFocused(Value: Boolean);
procedure TestActive(X, Y: Integer);
procedure SetPageSize(AValue: Integer);
procedure ButtonDown(I: Integer; X, Y: Integer);
procedure ButtonUp(I: Integer; X, Y: Integer);
procedure ButtonEnter(I: Integer);
procedure ButtonLeave(I: Integer);
procedure CalcRects;
function CalcValue(AOffset: Integer): Integer;
procedure SetKind(AValue: TScrollBarKind);
procedure SetPosition(AValue: Integer);
procedure SetMin(AValue: Integer);
procedure SetMax(AValue: Integer);
procedure SetSmallChange(AValue: Integer);
procedure SetLargeChange(AValue: Integer);
procedure CalcSize(var W, H: Integer); override;
procedure GetSkinData; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure WMTimer(var Message: TWMTimer); message WM_Timer;
procedure StartScroll;
procedure StopTimer;
procedure DrawButton(Cnvs: TCanvas; i: Integer);
procedure WMMOUSEWHEEL(var Message: TMessage); message WM_MOUSEWHEEL;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
procedure WMSETFOCUS(var Message: TWMSETFOCUS); message WM_SETFOCUS;
procedure WMKILLFOCUS(var Message: TWMKILLFOCUS); message WM_KILLFOCUS;
procedure WndProc(var Message: TMessage); override;
procedure CMWantSpecialKey(var Msg: TCMWantSpecialKey); message CM_WANTSPECIALKEY;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure CreateControlSkinImage(B: TBitMap); override;
public
FBoth: Boolean;
TrackArea: TRect;
UpButtonRect, ActiveUpButtonRect, DownUpButtonRect: TRect;
DownButtonRect, ActiveDownButtonRect, DownDownButtonRect: TRect;
ThumbRect, ActiveThumbRect, DownThumbRect: TRect;
ThumbOffset1, ThumbOffset2: Integer;
GlyphRect, ActiveGlyphRect, DownGlyphRect: TRect;
procedure SimplySetPosition(AValue: Integer);
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure SetRange(AMin, AMax, APosition, APageSize: Integer);
published
property Enabled;
property Both: Boolean read FBoth write SetBoth;
property BothMarkerWidth: Integer
read FBothMarkerWidth write SetBothMarkerWidth;
property BothSkinDataName: String
read FBothSkinDataName write FBothSkinDataName;
property TabStop;
property TabOrder;
property CanFocused: Boolean read FCanFocused write SetCanFocused;
property Align;
property Kind: TScrollBarKind read FKind write SetKind;
property PageSize: Integer read FPageSize write SetPageSize;
property Min: Integer read FMin write SetMin;
property Max: Integer read FMax write SetMax;
property Position: Integer read FPosition write SetPosition;
property SmallChange: Integer read FSmallChange write SetSmallChange;
property LargeChange: Integer read FLargeChange write SetLargeChange;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnLastChange: TNotifyEvent read FOnLastChange write FOnLastChange;
property OnUpButtonClick: TNotifyEvent read FOnUpButtonClick write FOnUpButtonClick;
property OnDownButtonClick: TNotifyEvent read FOnDownButtonClick write FOnDownButtonClick;
property OnPageUp: TNotifyEvent read FOnPageUp write FOnPageUp;
property OnPageDown: TNotifyEvent read FOnPageDown write FOnPageDown;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnResize;
end;
TbsSkinControlBar = class(TCustomControlBar)
protected
FSkinBevel: Boolean;
FIndex: Integer;
FSD: TbsSkinData;
FSkinDataName: String;
procedure PaintNCSkin;
procedure SetSkinBevel(Value: Boolean);
procedure SetSkinData(Value: TbsSkinData);
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure CreateParams(var Params: TCreateParams); override;
procedure WMNCCALCSIZE(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure WMSIZE(var Message: TWMSIZE); message WM_SIZE;
procedure WMNCPAINT(var Message: TMessage); message WM_NCPAINT;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure PaintControlFrame(Canvas: TCanvas; AControl: TControl;
var ARect: TRect); override;
public
LTPt, RTPt, LBPt, RBPt: TPoint;
SkinRect, ClRect, NewClRect, ItemRect: TRect;
NewLTPoint, NewRTPoint, NewLBPoint, NewRBPoint: TPoint;
FSkinPicture: TBitMap;
BGPictureIndex: Integer;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Paint; override;
property Canvas;
procedure GetSkinData;
procedure ChangeSkinData;
published
property SkinDataName: String read FSkinDataName write FSkinDataName;
property SkinData: TbsSkinData read FSD write SetSkinData;
property SkinBevel: Boolean read FSkinBevel write SetSkinBevel;
property Align;
property Anchors;
property AutoDrag;
property AutoSize;
property BevelEdges;
property BevelInner;
property BevelOuter;
property BevelKind;
property BevelWidth;
property BorderWidth;
property Color;
property Constraints;
property DockSite;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property Picture;
property PopupMenu;
property RowSize;
property RowSnap;
property ShowHint;
property TabOrder;
property TabStop;
property Visible;
property OnBandDrag;
property OnBandInfo;
property OnBandMove;
property OnBandPaint;
property OnCanResize;
property OnClick;
property OnConstrainedResize;
property OnDockDrop;
property OnDockOver;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnGetSiteInfo;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnPaint;
property OnResize;
property OnStartDock;
property OnStartDrag;
property OnUnDock;
end;
TbsSkinSplitter = class(TSPlitter)
protected
FDefaultSize: Integer;
FIndex: Integer;
FSD: TbsSkinData;
FSkinDataName: String;
procedure SetSkinData(Value: TbsSkinData);
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
public
LTPt, RTPt, LBPt: TPoint;
SkinRect: TRect;
FSkinPicture: TBitMap;
procedure GetSkinData;
procedure ChangeSkinData;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Paint; override;
published
property DefaultSize: Integer read FDefaultSize write FDefaultSize;
property SkinDataName: String read FSkinDataName write FSkinDataName;
property SkinData: TbsSkinData read FSD write SetSkinData;
property OnClick;
property OnDblClick;
end;
TbsSkinCustomRadioGroup = class(TbsSkinGroupBox)
private
FImages: TCustomImageList;
FButtonSkinDataName: String;
FButtons: TList;
FItems: TStrings;
FItemIndex: Integer;
FColumns: Integer;
FReading: Boolean;
FUpdating: Boolean;
FButtonDefaultFont: TFont;
procedure SetImages(Value: TCustomImageList);
procedure SetButtonDefaultFont(Value: TFont);
procedure SetButtonSkinDataName(Value: String);
procedure ArrangeButtons;
procedure ButtonClick(Sender: TObject);
procedure ItemsChange(Sender: TObject);
procedure SetButtonCount(Value: Integer);
procedure SetColumns(Value: Integer);
procedure SetItemIndex(Value: Integer);
procedure SetItems(Value: TStrings);
procedure UpdateButtons;
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
procedure WMSize(var Message: TWMSize); message WM_SIZE;
protected
procedure SetSkinData(Value: TbsSkinData); override;
procedure Loaded; override;
procedure ReadState(Reader: TReader); override;
function CanModify: Boolean; virtual;
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
property Columns: Integer read FColumns write SetColumns default 1;
property ItemIndex: Integer read FItemIndex write SetItemIndex default -1;
property Items: TStrings read FItems write SetItems;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ChangeSkinData; override;
procedure FlipChildren(AllLevels: Boolean); override;
property ButtonDefaultFont: TFont
read FButtonDefaultFont write SetButtonDefaultFont;
property ButtonSkinDataName: String
read FButtonSkinDataName write SetButtonSkinDataName;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -