📄 skinctrls.pas
字号:
FCanFocused: Boolean;
Offset1, Offset2, BOffset: Integer;
BR: TRect;
FMinValue, FMaxValue, FValue: Integer;
FVertical: Boolean;
FMouseSupport, FDown: Boolean;
OMPos: Integer;
OldBOffset: Integer;
FOnChange: TNotifyEvent;
FOnLastChange: TNotifyEvent;
FOnStartDragButton: 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; AV: Boolean): 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 WMEraseBkgnd(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
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
ActiveSkinRect: TRect;
TrackArea, NewTrackArea, ButtonRect, ActiveButtonRect: TRect;
ButtonTransparent: Boolean;
ButtonTransparentColor: TColor;
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 OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnLastChange: TNotifyEvent read FOnLastChange write FOnLastChange;
property OnStartDragButton: TNotifyEvent
read FOnStartDragButton write FOnStartDragButton;
property Align;
property Enabled;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnResize;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
end;
TspSkinScrollBar = class(TspSkinCustomControl)
private
FNormalSkinDataName: String;
FBothSkinDataName: String;
Offset1, Offset2, BOffset: Integer;
NewTrackArea: TRect;
FDown: Boolean;
OMPos, OldPosition, FScrollWidth: Integer;
OldBOffset: Integer;
WaitMode: Boolean;
MX, MY: Integer;
MouseD: Boolean;
protected
FBothMarkerWidth: Integer;
FClicksDisabled: Boolean;
FCanFocused: Boolean;
FOnChange: TNotifyEvent;
FOnLastChange: TNotifyEvent;
FOnUpButtonClick: TNotifyEvent;
FOnDownButtonClick: TNotifyEvent;
FOnPageUp: TNotifyEvent;
FOnPageDown: TNotifyEvent;
TimerMode: Integer;
ActiveButton, OldActiveButton, CaptureButton: Integer;
Buttons: array[0..2] of TspControlButton;
FMin, FMax, FSmallChange,
FLargeChange, FPosition: Integer;
FKind: TScrollBarKind;
FPageSize: Integer;
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 SetBoth(Value: Boolean);
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 WMEraseBkgnd(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
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;
ThumbTransparent: Boolean;
ThumbTransparentColor: TColor;
GlyphRect, ActiveGlyphRect, DownGlyphRect: TRect;
ThumbStretchEffect: Boolean;
ThumbMinSize: TColor;
ThumbMinPageSize: TColor;
GlyphTransparent: Boolean;
GlyphTransparentColor: TColor;
procedure SimplySetPosition(AValue: Integer);
constructor Create(AOwner: TComponent); override;
procedure SetRange(AMin, AMax, APosition, APageSize: Integer);
published
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 OnUpButtonClick: TNotifyEvent read FOnUpButtonClick write FOnUpButtonClick;
property OnDownButtonClick: TNotifyEvent read FOnDownButtonClick write FOnDownButtonClick;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnLastChange: TNotifyEvent read FOnLastChange write FOnLastChange;
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;
TspSkinCoolBar = class(TCoolBar)
protected
FSkinBevel: Boolean;
FIndex: Integer;
FSD: TspSkinData;
FSkinDataName: String;
procedure DrawGrip(C: TCanvas; R: TRect);
procedure PaintNCSkin(ADC: HDC; AUseExternalDC: Boolean);
procedure SetSkinBevel(Value: Boolean);
procedure SetSkinData(Value: TspSkinData);
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 CMBENCPaint(var Message: TMessage); message CM_BENCPAINT;
procedure AlignControls(AControl: TControl; var Rect: TRect); override;
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
function GetCaptionSize(Band: TCoolBand): Integer;
function GetCaptionFontHeight: Integer;
procedure CheckControlsBackground;
procedure CMSENCPaint(var Message: TMessage); message CM_SENCPAINT;
public
LTPt, RTPt, LBPt, RBPt: TPoint;
SkinRect, ClRect, NewClRect, ItemRect: TRect;
NewLTPoint, NewRTPoint, NewLBPoint, NewRBPoint: TPoint;
FSkinPicture: TBitMap;
BGPictureIndex: Integer;
HGripRect, VGripRect: TRect;
GripOffset1, GripOffset2: Integer;
LeftStretch, TopStretch, RightStretch, BottomStretch: Boolean;
StretchType: TspStretchType;
StretchEffect: Boolean;
ItemStretchEffect: Boolean;
GripTransparent: Boolean;
GripTransparentColor: TColor;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure GetSkinData;
procedure ChangeSkinData;
published
property SkinDataName: String read FSkinDataName write FSkinDataName;
property SkinData: TspSkinData read FSD write SetSkinData;
property SkinBevel: Boolean read FSkinBevel write SetSkinBevel;
property Align;
property Anchors;
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 PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property Visible;
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 OnResize;
property OnStartDock;
property OnStartDrag;
property OnUnDock;
end;
TspSkinControlBar = class(TCustomControlBar)
protected
FSkinBevel: Boolean;
FIndex: Integer;
FSD: TspSkinData;
FSkinDataName: String;
procedure PaintNCSkin(ADC: HDC; AUseExternalDC: Boolean);
procedure SetSkinBevel(Value: Boolean);
procedure SetSkinData(Value: TspSkinData);
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;
procedure CMBENCPaint(var Message: TMessage); message CM_BENCPAINT;
procedure CheckControlsBackground;
procedure CMSENCPaint(var Message: TMessage); message CM_SENCPAINT;
public
LTPt, RTPt, LBPt, RBPt: TPoint;
SkinRect, ClRect, NewClRect, ItemRect: TRect;
NewLTPoint, NewRTPoint, NewLBPoint, NewRBPoint: TPoint;
FSkinPicture: TBitMap;
BGPictureIndex: Integer;
LeftStretch, TopStretch, RightStretch, BottomStretch: Boolean;
StretchEffect: Boolean;
StretchType: TspStretchType;
ItemStretchEffect: Boolean;
ItemOffset1, ItemOffset2: Integer;
ItemTransparent: Boolean;
ItemTransparentColor: T
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -