📄 skinctrls.pas
字号:
procedure SetDefaultCaptionHeight(Value: Integer); virtual;
procedure SetBorderStyle(Value: TspSkinBorderStyle);
procedure SetRollUpState(Value: Boolean);
procedure SetCaptionMode(Value: Boolean); virtual;
procedure SetAlphaBlend(AValue: Boolean); override;
procedure SetAlphaBlendValue(AValue: Byte); override;
procedure CreateParams(var Params: TCreateParams); override;
procedure AdjustClientRect(var Rect: TRect); override;
procedure GetSkinData; override;
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure CreateControlSkinImage(B: TBitMap); override;
procedure HideControls;
procedure ShowControls;
procedure SkinDrawCheckImage(X, Y: Integer; Cnvs: TCanvas; IR: TRect; DestCnvs: TCanvas);
public
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
FontColor: TColor;
Alignment: TAlignment;
CaptionRect: TRect;
NewCaptionRect: TRect;
BGPictureIndex: Integer;
CheckImageRect, UnCheckImageRect: TRect;
MarkFrameRect, FrameRect: TRect;
FrameLeftOffset, FrameRightOffset: Integer;
FrameTextRect: TRect;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ChangeSkinData; override;
procedure DoRollUp(ARollUp: Boolean);
procedure Paint; override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
function GetSkinClientRect: TRect;
published
property RealHeight: Integer read FRealHeight write FRealHeight;
property AutoEnabledControls: Boolean
read FAutoEnabledControls write FAutoEnabledControls;
property CheckedMode: Boolean read FCheckedMode write SetCheckedMode;
property Checked: Boolean read FChecked write SetChecked;
property Glyph: TBitMap read FGlyph write SetGlyph;
property NumGlyphs: TspSkinPanelNumGlyphs read FNumGlyphs write SetNumGlyphs;
property Spacing: Integer read FSpacing write SetSpacing;
property DefaultAlignment: TAlignment
read FDefaultAlignment write SetDefaultAlignment;
property DefaultCaptionHeight: Integer
read FDefaultCaptionHeight write SetDefaultCaptionHeight;
property BorderStyle: TspSkinBorderStyle
read FBorderStyle write SetBorderStyle;
property CaptionMode: Boolean read FCaptionMode write SetCaptionMode;
property RollUpMode: Boolean read FRollUpMode write SetRollUpMode;
property RollUpState: Boolean read FRollUpState write SetRollUpState;
property Constraints;
property Caption;
property Align;
property DockSite;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property Visible;
property OnChecked: TNotifyEvent read FOnChecked write FOnChecked;
property OnChangeRollUpState: TNotifyEvent
read FOnChangeRollUpState write FOnChangeRollUpState;
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;
TspPaintPanelEvent = procedure(Cnvs: TCanvas; R: TRect) of object;
TspSkinPaintPanel = class(TspSkinPanel)
private
FOnPanelPaint: TspPaintPanelEvent;
protected
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure CreateControlSkinImage(B: TBitMap); override;
procedure WMEraseBkgnd(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
published
property OnPanelPaint: TspPaintPanelEvent
read FOnPanelPaint write FOnPanelPaint;
end;
TspExPanelRollKind = (rkRollHorizontal, rkRollVertical);
TspSkinExPanel = class(TspSkinCustomControl)
private
FGlyph: TBitMap;
FNumGlyphs: TspSkinPanelNumGlyphs;
FSpacing: Integer;
FOnChangeRollState: TNotifyEvent;
FOnClose: TNotifyEvent;
StopCheckSize: Boolean;
FRollState: Boolean;
FRollKind: TspExPanelRollKind;
FDefaultCaptionHeight: Integer;
FRealWidth, FRealHEight: Integer;
FShowRollButton: Boolean;
FShowCloseButton: Boolean;
function GetRollWidth: Integer;
function GetRollHeight: Integer;
procedure SetShowRollButton(Value: Boolean);
procedure SetShowCloseButton(Value: Boolean);
procedure SetGlyph(Value: TBitMap);
procedure SetNumGlyphs(Value: TspSkinPanelNumGlyphs);
procedure SetSpacing(Value: Integer);
protected
Buttons: array[0..1] of TspControlButton;
OldActiveButton, ActiveButton, CaptureButton: Integer;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
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 CreateControlDefaultImage(B: TBitMap); override;
procedure CreateControlSkinImage(B: TBitMap); override;
procedure SetDefaultCaptionHeight(Value: Integer);
procedure AdjustClientRect(var Rect: TRect); override;
procedure HideControls;
procedure ShowControls;
procedure SetRollState(Value: Boolean);
procedure SetRollKind(Value: TspExPanelRollKind);
//
procedure ButtonDown(I: Integer; X, Y: Integer);
procedure ButtonUp(I: Integer; X, Y: Integer);
procedure ButtonEnter(I: Integer);
procedure ButtonLeave(I: Integer);
procedure DrawButton(Cnvs: TCanvas; i: Integer);
procedure TestActive(X, Y: Integer);
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
procedure GetSkinData; override;
public
//
RollHSkinRect, RollVSkinRect: TRect;
RollLeftOffset, RollRightOffset,
RollTopOffset, RollBottomOffset: Integer;
RollVCaptionRect, RollHCaptionRect: TRect;
CloseButtonRect, CloseButtonActiveRect, CloseButtonDownRect: TRect;
HRollButtonRect, HRollButtonActiveRect, HRollButtonDownRect: TRect;
HRestoreButtonRect, HRestoreButtonActiveRect, HRestoreButtonDownRect: TRect;
VRollButtonRect, VRollButtonActiveRect, VRollButtonDownRect: TRect;
VRestoreButtonRect, VRestoreButtonActiveRect, VRestoreButtonDownRect: TRect;
CaptionRect: TRect;
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
FontColor: TColor;
//
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
procedure ChangeSkinData; override;
procedure Close;
published
property Glyph: TBitMap read FGlyph write SetGlyph;
property NumGlyphs: TspSkinPanelNumGlyphs read FNumGlyphs write SetNumGlyphs;
property Spacing: Integer read FSpacing write SetSpacing;
property RealWidth: Integer read FRealWidth write FRealWidth;
property RealHeight: Integer read FRealHeight write FRealHeight;
property ShowRollButton: Boolean
read FShowRollButton write SetShowRollButton;
property ShowCloseButton: Boolean
read FShowCloseButton write SetShowCloseButton;
property DefaultCaptionHeight: Integer
read FDefaultCaptionHeight write SetDefaultCaptionHeight;
property RollState: Boolean read FRollState write SetRollState;
property RollKind: TspExPanelRollKind read FRollKind write SetRollKind;
property Align;
property Caption;
property Constraints;
property DockSite;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
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;
property OnChangeRollState: TNotifyEvent
read FOnChangeRollState write FOnChangeRollState;
property OnClose: TNotifyEvent read FOnClose write FOnClose;
end;
TspSkinStatusBar = class(TspSkinPanel)
protected
procedure SetSkinData(Value: TspSkinData); override;
public
constructor Create(AOwner: TComponent); override;
end;
TspSkinToolBar = class(TspSkinPanel)
private
// scroll
FCanScroll: Boolean;
FHotScroll: Boolean;
TimerMode: Integer;
SMax, SPosition, SPage, SOldPosition: Integer;
FHSizeOffset: Integer;
FScrollOffset: Integer;
FScrollTimerInterval: Integer;
Buttons: array[0..1] of TspControlButton;
ButtonData: TspDataSkinButtonControl;
//
FImages: TCustomImageList;
FDisabledImages: TCustomImageList;
FHotImages: TCustomImageList;
FFlat: Boolean;
FAutoShowHideCaptions: Boolean;
FShowCaptions: Boolean;
FWidthWithCaptions: Integer;
FWidthWithoutCaptions: Integer;
procedure SetFlat(Value: Boolean);
procedure SetDisabledImages(Value: TCustomImageList);
procedure SetHotImages(Value: TCustomImageList);
procedure SetImages(Value: TCustomImageList);
procedure SetShowCaptions(Value: Boolean);
// scroll
procedure SetScrollOffset(Value: Integer);
procedure SetScrollTimerInterval(Value: Integer);
procedure DrawButton(Cnvs: TCanvas; i: Integer);
protected
procedure CreateControlSkinImage(B: TBitMap); override;
procedure GetSkinData; override;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure SetSkinData(Value: TspSkinData); override;
procedure SetSkinDataName(Value: String); override;
// scroll
procedure WMSETCURSOR(var Message: TWMSetCursor); message WM_SetCursor;
procedure WMTimer(var Message: TWMTimer); message WM_Timer;
procedure WMNCCALCSIZE(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure WMNCPAINT(var Message: TMessage); message WM_NCPAINT;
procedure WMSIZE(var Message: TWMSIZE); message WM_SIZE;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure WndProc(var Message: TMessage); override;
procedure SetButtonsVisible(AVisible: Boolean);
procedure ButtonClick(I: Integer);
procedure ButtonDown(I: Integer);
procedure ButtonUp(I: Integer);
procedure GetHRange;
procedure GetScrollInfo;
procedure HScrollControls(AOffset: Integer);
procedure AdjustClientRect(var Rect: TRect); override;
procedure StartTimer;
procedure StopTimer;
public
constructor Create(AOwner: TComponent); override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
published
// scroll
property CanScroll: Boolean read FCanScroll write FCanScroll;
property HotScroll: Boolean read FHotScroll write FHotScroll;
property ScrollOffset: Integer read FScrollOffset write SetScrollOffset;
property ScrollTimerInterval: Integer
read FScrollTimerInterval write SetScrollTimerInterval;
//
property WidthWithCaptions: Integer
read FWidthWithCaptions write FWidthWithCaptions;
property WidthWithoutCaptions: Integer
read FWidthWithoutCaptions write FWidthWithoutCaptions;
property AutoShowHideCaptions: Boolean
read FAutoShowHideCaptions write FAutoShowHideCaptions;
property ShowCaptions: Boolean read FShowCaptions write SetShowCaptions;
property Flat: Boolean read FFlat write SetFlat;
property Images: TCustomImageList read FImages write SetImages;
property HotImages: TCustomImageList read FHotImages write SetHotImages;
property DisabledImages: TCustomImageList read FDisabledImages write SetDisabledImages;
end;
TspSkinGroupBox = class(TspSkinPanel)
public
constructor Create(AOwner: TComponent); override;
end;
TspNumGlyphs = 1..4;
TspButtonLayout = (blGlyphLeft, blGlyphRight, blGlyphTop, blGlyphBottom);
TspSkinButton = class(TspSkinCustomControl)
protected
// animation
AnimateTimer: TTimer;
CurrentFrame: Integer;
AnimateInc: Boolean;
//
FUseSkinSize: Boolean;
RepeatTimer: TTimer;
FRepeatMode: Boolean;
FRepeatInterval: Integer;
FActive: Boolean;
FAllowAllUp: Boolean;
FAllowAllUpCheck: Boolean;
FDefault: Boolean;
FCancel: Boolean;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -