📄 bsskinboxctrls.pas
字号:
property OnListBoxClick;
property OnListBoxDblClick;
property OnListBoxMouseDown;
property OnListBoxMouseMove;
property OnListBoxMouseUp;
property OnListBoxKeyDown;
property OnListBoxKeyPress;
property OnListBoxKeyUp;
property OnListBoxDragDrop;
property OnListBoxDragOver;
property OnListBoxStartDrag;
property OnListBoxEndDrag;
property OnDrawItem;
end;
TbsSkinScrollBox = class(TbsSkinCustomControl)
protected
FInCheckScrollBars: Boolean;
FDown: Boolean;
FVScrollBar: TbsSkinScrollBar;
FHScrollBar: TbsSkinScrollBar;
FOldVScrollBarPos: Integer;
FOldHScrollBarPos: Integer;
FVSizeOffset: Integer;
FHSizeOffset: Integer;
FBorderStyle: TbsSkinBorderStyle;
procedure SetBorderStyle(Value: TbsSkinBorderStyle);
procedure SetVScrollBar(Value: TbsSkinScrollBar);
procedure SetHScrollBar(Value: TbsSkinScrollBar);
procedure VScrollControls(AOffset: Integer);
procedure HScrollControls(AOffset: Integer);
procedure OnHScrollBarChange(Sender: TObject);
procedure OnVScrollBarChange(Sender: TObject);
procedure OnHScrollBarLastChange(Sender: TObject);
procedure OnVScrollBarLastChange(Sender: TObject);
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure WMNCCALCSIZE(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure WMNCPAINT(var Message: TWMNCPAINT); message WM_NCPAINT;
procedure PaintFrame(C: TCanvas);
procedure WMSize(var Msg: TWMSize); message WM_SIZE;
procedure CreateParams(var Params: TCreateParams); override;
procedure GetSkinData; override;
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure ChangeSkinData; override;
procedure AdjustClientRect(var Rect: TRect); override;
procedure CMVisibleChanged(var Message: TMessage); message CM_VISIBLECHANGED;
procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
public
BGPictureIndex: Integer;
procedure HScroll(APosition: Integer);
procedure VScroll(APosition: Integer);
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
procedure Paint; override;
procedure GetHRange;
procedure GetVRange;
procedure UpDateScrollRange;
published
property HScrollBar: TbsSkinScrollBar read FHScrollBar
write SetHScrollBar;
property VScrollBar: TbsSkinScrollBar read FVScrollBar
write SetVScrollBar;
property BorderStyle: TbsSkinBorderStyle
read FBorderStyle write SetBorderStyle;
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 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;
TCloseUpEvent = procedure (Sender: TObject; Accept: Boolean) of object;
TPopupAlign = (epaRight, epaLeft);
TbsCBItem = record
R: TRect;
State: TOwnerDrawState;
end;
TbsSkinCustomComboBoxStyle = (bscbEditStyle, bscbFixedStyle);
TbsPopupListBox = class(TbsSkinListBox)
private
FOldAlphaBlend: Boolean;
FOldAlphaBlendValue: Byte;
procedure WMMouseActivate(var Message: TMessage); message WM_MOUSEACTIVATE;
protected
procedure CreateParams(var Params: TCreateParams); override;
public
constructor Create(AOwner: TComponent); override;
procedure Hide;
procedure Show(Origin: TPoint);
end;
TbsSkinCustomComboBox = class(TbsSkinCustomControl)
protected
FLastTime: Cardinal;
FFilter: String;
FAutoComplete: Boolean;
FAlphaBlend: Boolean;
FAlphaBlendAnimation: Boolean;
FAlphaBlendValue: Byte;
FStyle: TbsSkinCustomComboBoxStyle;
FOnChange: TNotifyEvent;
FOnClick: TNotifyEvent;
FOnCloseUp: TNotifyEvent;
FOnDropDown: TNotifyEvent;
FOnListBoxDrawItem: TbsDrawSkinItemEvent;
FOnComboBoxDrawItem: TbsDrawSkinItemEvent;
FMouseIn: Boolean;
FOldItemIndex: Integer;
FDropDownCount: Integer;
FLBDown: Boolean;
FListBoxWindowProc: TWndMethod;
FEditWindowProc: TWndMethod;
//
FListBox: TbsPopupListBox;
//
CBItem: TbsCBItem;
Button: TbsCBButtonX;
FEdit: TbsCustomEdit;
FromEdit: Boolean;
function GetSelStart: Integer;
procedure SetSelStart(Value: Integer);
function GetSelLength: Integer;
procedure SetSelLength(Value: Integer);
procedure EditKeyPress(Sender: TObject; var Key: Char);
procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure EditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
function GetHorizontalExtent: Boolean;
procedure SetHorizontalExtent(Value: Boolean);
function GetListBoxUseSkinItemHeight: Boolean;
procedure SetListBoxUseSkinItemHeight(Value: Boolean);
function GetImages: TCustomImageList;
function GetImageIndex: Integer;
procedure SetImages(Value: TCustomImageList);
procedure SetImageIndex(Value: Integer);
function GetListBoxDefaultFont: TFont;
procedure SetListBoxDefaultFont(Value: TFont);
function GetListBoxUseSkinFont: Boolean;
procedure SetListBoxUseSkinFont(Value: Boolean);
function GetListBoxDefaultCaptionFont: TFont;
procedure SetListBoxDefaultCaptionFont(Value: TFont);
function GetListBoxDefaultItemHeight: Integer;
procedure SetListBoxDefaultItemHeight(Value: Integer);
function GetListBoxCaptionAlignment: TAlignment;
procedure SetListBoxCaptionAlignment(Value: TAlignment);
procedure CheckButtonClick(Sender: TObject);
procedure SetListBoxCaption(Value: String);
function GetListBoxCaption: String;
procedure SetListBoxCaptionMode(Value: Boolean);
function GetListBoxCaptionMode: Boolean;
procedure EditCancelMode(C: TControl);
procedure ListBoxDrawItem(Cnvs: TCanvas; Index: Integer;
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState);
function GetSorted: Boolean;
procedure SetSorted(Value: Boolean);
procedure SetStyle(Value: TbsSkinCustomComboBoxStyle);
procedure DrawDefaultItem(Cnvs: TCanvas);
procedure DrawSkinItem(Cnvs: TCanvas);
function GetItemIndex: Integer;
procedure SetItemIndex(Value: Integer);
procedure ListBoxWindowProcHook(var Message: TMessage);
procedure EditWindowProcHook(var Message: TMessage); virtual;
procedure SetItems(Value: TStrings);
function GetItems: TStrings;
procedure SetListBoxDrawItem(Value: TbsDrawSkinItemEvent);
procedure SetDropDownCount(Value: Integer);
procedure EditChange(Sender: TObject);
procedure EditUp(AChange: Boolean);
procedure EditDown(AChange: Boolean);
procedure EditUp1(AChange: Boolean);
procedure EditDown1(AChange: Boolean);
procedure EditPageUp1(AChange: Boolean);
procedure EditPageDown1(AChange: Boolean);
procedure ShowEditor;
procedure HideEditor;
procedure DrawButton(C: TCanvas);
procedure CalcRects;
procedure WMSETFOCUS(var Message: TMessage); message WM_SETFOCUS;
procedure WMKILLFOCUS(var Message: TWMKILLFOCUS); message WM_KILLFOCUS;
procedure WMSIZE(var Message: TWMSIZE); message WM_SIZE;
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMCancelMode(var Message: TCMCancelMode); message CM_CANCELMODE;
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 ListBoxMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ListBoxMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure ListBoxMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure GetSkinData; override;
procedure WMMOUSEWHEEL(var Message: TMessage); message WM_MOUSEWHEEL;
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure CMWantSpecialKey(var Msg: TCMWantSpecialKey); message CM_WANTSPECIALKEY;
procedure DefaultFontChange; override;
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure CreateControlSkinImage(B: TBitMap); override;
procedure Change; virtual;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure FindLBItem(S: String);
procedure FindLBItemFromEdit;
public
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
SItemRect, FocusItemRect: TRect;
ItemLeftOffset, ItemRightOffset: Integer;
ItemTextRect: TRect;
FontColor, FocusFontColor: TColor;
ButtonRect,
ActiveButtonRect,
DownButtonRect, UnEnabledButtonRect: TRect;
ListBoxName: String;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ChangeSkinData; override;
procedure CloseUp(Value: Boolean);
procedure DropDown; virtual;
function IsPopupVisible: Boolean;
function CanCancelDropDown: Boolean;
procedure Invalidate; override;
public
property AutoComplete: Boolean read FAutoComplete write FAutoComplete;
property AlphaBlend: Boolean read FAlphaBlend write FAlphaBlend;
property AlphaBlendAnimation: Boolean
read FAlphaBlendAnimation write FAlphaBlendAnimation;
property AlphaBlendValue: Byte read FAlphaBlendValue write FAlphaBlendValue;
property Images: TCustomImageList read GetImages write SetImages;
property ImageIndex: Integer read GetImageIndex write SetImageIndex;
property ListBoxUseSkinItemHeight: Boolean
read GetListBoxUseSkinItemHeight write SetListBoxUseSkinItemHeight;
property ListBoxCaption: String read GetListBoxCaption
write SetListBoxCaption;
property ListBoxCaptionMode: Boolean read GetListBoxCaptionMode
write SetListBoxCaptionMode;
property ListBoxDefaultFont: TFont
read GetListBoxDefaultFont write SetListBoxDefaultFont;
property ListBoxUseSkinFont: Boolean
read GetListBoxUseSkinFont write SetListBoxUseSkinFont;
property ListBoxDefaultCaptionFont: TFont
read GetListBoxDefaultCaptionFont write SetListBoxDefaultCaptionFont;
property ListBoxDefaultItemHeight: Integer
read GetListBoxDefaultItemHeight write SetListBoxDefaultItemHeight;
property ListBoxCaptionAlignment: TAlignment
read GetListBoxCaptionAlignment write SetListBoxCaptionAlignment;
property Enabled;
property PopupMenu;
property ShowHint;
property TabOrder;
property Visible;
//
property Text;
property Align;
property Items: TStrings read GetItems write SetItems;
property ItemIndex: Integer read GetItemIndex write SetItemIndex;
property DropDownCount: Integer read FDropDownCount write SetDropDownCount;
property HorizontalExtent: Boolean
read GetHorizontalExtent write SetHorizontalExtent;
property Font;
property Sorted: Boolean read GetSorted write SetSorted;
property Style: TbsSkinCustomComboBoxStyle read FStyle write SetStyle;
property SelStart: Integer read GetSelStart write SetSelStart;
property SelLength: Integer read GetSelLength write SetSelLength;
property OnListBoxDrawItem: TbsDrawSkinItemEvent
read FOnListBoxDrawItem write SetListBoxDrawItem;
property OnComboBoxDrawItem: TbsDrawSkinItemEvent
read FOnComboBoxDrawItem write FOnComboBoxDrawItem;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -