📄 bsskinboxctrls.pas
字号:
property OnGetSiteInfo;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnResize;
property OnStartDock;
property OnStartDrag;
property OnUnDock;
property OnMouseWheel;
property OnMouseWheelDown;
property OnMouseWheelUp;
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
FNumEdit: Boolean;
FDropDown: Boolean;
FToolButtonStyle: Boolean;
FCharCase: TEditCharCase;
FDefaultColor: TColor;
FUseSkinSize: Boolean;
WasInLB: Boolean;
TimerMode: Integer;
FListBoxWidth: Integer;
FHideSelection: Boolean;
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;
procedure DrawTabbedString(S: String; TW: TStrings; C: TCanvas; R: TRect; Offset: Integer);
procedure AdjustEditHeight;
procedure DrawMenuMarker(C: TCanvas; R: TRect; AActive, ADown: Boolean;
ButtonData: TbsDataSkinButtonControl);
procedure SetCharCase(Value: TEditCharCase);
function GetSelStart: Integer;
procedure SetSelStart(Value: Integer);
function GetSelLength: Integer;
procedure SetSelLength(Value: Integer);
procedure ProcessListBox;
procedure StartTimer;
procedure StopTimer;
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);
procedure DrawResizeSkinItem(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; virtual;
procedure HideEditor;
procedure DrawButton(C: TCanvas);
procedure DrawResizeButton(C: TCanvas);
procedure CalcRects;
procedure WMTimer(var Message: TWMTimer); message WM_Timer;
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 ListBoxMouseMove(Sender: TObject; 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 CreateControlDefaultImage2(B: TBitMap);
procedure CreateControlSkinImage2(B: TBitMap);
procedure CreateControlToolSkinImage(B: TBitMap; AText: String);
procedure CreateControlToolDefaultImage(B: TBitMap; AText: String);
procedure Change; virtual;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure FindLBItem(S: String);
procedure FindLBItemFromEdit;
procedure CalcSize(var W, H: Integer); override;
procedure SetControlRegion; override;
procedure WMEraseBkgnd(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure SetDefaultColor(Value: TColor);
function GetDisabledFontColor: TColor;
function GetTabWidths: TStrings;
procedure SetTabWidths(Value: TStrings);
procedure SetToolButtonStyle(Value: Boolean);
public
ActiveSkinRect: TRect;
ActiveFontColor: TColor;
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
SItemRect, FocusItemRect, ActiveItemRect: TRect;
ItemLeftOffset, ItemRightOffset: Integer;
ItemTextRect: TRect;
FontColor, FocusFontColor: TColor;
ButtonRect,
ActiveButtonRect,
DownButtonRect, UnEnabledButtonRect: TRect;
ListBoxName: String;
ItemStretchEffect, FocusItemStretchEffect: Boolean;
ShowFocus: Boolean;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure PaintSkinTo(C: TCanvas; X, Y: Integer; AText: String);
procedure ChangeSkinData; override;
procedure CloseUp(Value: Boolean);
procedure DropDown; virtual;
function IsPopupVisible: Boolean;
function CanCancelDropDown: Boolean;
procedure Invalidate; override;
property ToolButtonStyle: Boolean
read FToolButtonStyle write SetToolButtonStyle;
property HideSelection: Boolean
read FHideSelection write FHideSelection;
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 ListBoxWidth: Integer read FListBoxWidth write FListBoxWidth;
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 TabStop default True;
property Visible;
//
property CharCase: TEditCharCase read FCharCase write SetCharCase;
property DefaultColor: TColor read FDefaultColor write SetDefaultColor;
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 TabWidths: TStrings read GetTabWidths write SetTabWidths;
property OnListBoxDrawItem: TbsDrawSkinItemEvent
read FOnListBoxDrawItem write SetListBoxDrawItem;
property OnComboBoxDrawItem: TbsDrawSkinItemEvent
read FOnComboBoxDrawItem write FOnComboBoxDrawItem;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnClick: TNotifyEvent read FOnClick write FOnClick;
property OnCloseUp: TNotifyEvent read FOnCloseUp write FOnCloseUp;
property OnDropDown: TNotifyEvent read FOnDropDown write FOnDropDown;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnEnter;
property OnExit;
published
property UseSkinSize: Boolean read FUseSkinSize write FUseSkinSize;
end;
TbsSkinComboBox = class(TbsSkinCustomComboBox)
published
property ToolButtonStyle;
property AlphaBlend;
property AlphaBlendValue;
property AlphaBlendAnimation;
property ListBoxCaption;
property ListBoxCaptionMode;
property ListBoxDefaultFont;
property ListBoxDefaultCaptionFont;
property ListBoxDefaultItemHeight;
property ListBoxCaptionAlignment;
property ListBoxUseSkinFont;
property ListBoxUseSkinItemHeight;
property ListBoxWidth;
property HideSelection;
property AutoComplete;
property Images;
property ImageIndex;
property TabWidths;
property Enabled;
property PopupMenu;
property ShowHint;
proper
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -