📄 bsskinboxctrls.pas
字号:
property OnStartDock;
property OnStartDrag;
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;
TbsSkinMemo2 = class(TMemo)
protected
FMouseIn: Boolean;
FIndex: Integer;
FSD: TbsSkinData;
FSkinDataName: String;
FOnMouseEnter, FOnMouseLeave: TNotifyEvent;
FVScrollBar: TbsSkinScrollBar;
FHScrollBar: TbsSkinScrollBar;
FDown: Boolean;
FDefaultFont: TFont;
FUseSkinFont: Boolean;
FUseSkinFontColor: Boolean;
FSysPopupMenu: TbsSkinPopupMenu;
procedure DoUndo(Sender: TObject);
procedure DoCut(Sender: TObject);
procedure DoCopy(Sender: TObject);
procedure DoPaste(Sender: TObject);
procedure DoDelete(Sender: TObject);
procedure DoSelectAll(Sender: TObject);
procedure CreateSysPopupMenu;
procedure OnDefaultFontChange(Sender: TObject);
procedure SetDefaultFont(Value: TFont);
procedure UpDateScrollRange;
procedure SetVScrollBar(Value: TbsSkinScrollBar);
procedure SetHScrollBar(Value: TbsSkinScrollBar);
procedure OnVScrollBarChange(Sender: TObject);
procedure OnHScrollBarChange(Sender: TObject);
procedure SetSkinData(Value: TbsSkinData);
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure Change; override;
procedure GetSkinData;
procedure WMCONTEXTMENU(var Message: TWMCONTEXTMENU); message WM_CONTEXTMENU;
procedure WMAFTERDISPATCH(var Message: TMessage); message WM_AFTERDISPATCH;
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure CNCtlColorEdit(var Message:TWMCTLCOLOREDIT); message CN_CTLCOLOREDIT;
procedure WMCHAR(var Message:TMessage); message WM_CHAR;
procedure WMNCCALCSIZE(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure CreateParams(var Params: TCreateParams); override;
procedure WMSETFOCUS(var Message: TMessage); message WM_SETFOCUS;
procedure WMKILLFOCUS(var Message: TMessage); message WM_KILLFOCUS;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure WMMove(var Msg: TWMMove); message WM_MOVE;
procedure WMSize(var Msg: TWMSize); message WM_SIZE;
procedure WMLBUTTONDOWN(var Message: TMessage); message WM_LBUTTONDOWN;
procedure WMLBUTTONUP(var Message: TMessage); message WM_LBUTTONUP;
procedure WMMOUSEMOVE(var Message: TMessage); message WM_MOUSEMOVE;
procedure WMMOUSEWHEEL(var Message: TMessage); message WM_MOUSEWHEEL;
procedure WMSetText(var Message:TWMSetText); message WM_SETTEXT;
procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
procedure WMCut(var Message: TMessage); message WM_Cut;
procedure WMPaste(var Message: TMessage); message WM_PASTE;
procedure WMClear(var Message: TMessage); message WM_CLEAR;
procedure WMUndo(var Message: TMessage); message WM_UNDO;
procedure WMVSCROLL(var Message: TWMVScroll); message WM_VSCROLL;
procedure WMHSCROLL(var Message: TWMHScroll); message WM_HSCROLL;
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
function GetDisabledFontColor: TColor;
public
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
FontColor: TColor;
ActiveFontColor: TColor;
BGColor: TColor;
ActiveBGColor: TColor;
//
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ChangeSkinData;
procedure Invalidate; override;
property BorderStyle;
property ScrollBars;
published
//
property DefaultFont: TFont read FDefaultFont write SetDefaultFont;
property UseSkinFont: Boolean read FUseSkinFont write FUseSkinFont;
property UseSkinFontColor: Boolean read FUseSkinFontColor write FUseSkinFontColor;
property VScrollBar: TbsSkinScrollBar read FVScrollBar
write SetVScrollBar;
property HScrollBar: TbsSkinScrollBar read FHScrollBar
write SetHScrollBar;
property SkinData: TbsSkinData read FSD write SetSkinData;
property SkinDataName: String read FSkinDataName write FSkinDataName;
//
property ReadOnly;
property Align;
property Alignment;
property Anchors;
property BiDiMode;
property Constraints;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property Font;
property HideSelection;
property ImeMode;
property ImeName;
property Lines;
property MaxLength;
property OEMConvert;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property Visible;
property WantReturns;
property WantTabs;
property WordWrap;
property OnChange;
property OnClick;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;
TbsSkinCustomListBox = class;
TbsListBox = class(TListBox)
protected
{$IFDEF VER130}
FAutoComplete: Boolean;
FLastTime: Cardinal;
FFilter: String;
{$ENDIF}
FHorizontalExtentValue: Integer;
procedure DrawTabbedString(S: String; TW: TStrings; C: TCanvas; R: TRect; Offset: Integer);
function GetState(AItemID: Integer): TOwnerDrawState;
procedure PaintBGWH(Cnvs: TCanvas; AW, AH, AX, AY: Integer);
procedure PaintBG(DC: HDC);
procedure PaintList(DC: HDC);
procedure PaintColumnsList(DC: HDC);
procedure CreateParams(var Params: TCreateParams); override;
procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;
procedure WndProc(var Message: TMessage); override;
procedure DrawDefaultItem(Cnvs: TCanvas; itemID: Integer; rcItem: TRect;
State: TOwnerDrawState);
procedure DrawSkinItem(Cnvs: TCanvas; itemID: Integer; rcItem: TRect;
State: TOwnerDrawState);
procedure DrawStretchSkinItem(Cnvs: TCanvas; itemID: Integer; rcItem: TRect;
State: TOwnerDrawState);
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure WMPaint(var Msg: TWMPaint); message WM_PAINT;
procedure WMNCCALCSIZE(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure PaintWindow(DC: HDC); 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 KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure Click; override;
procedure CMEnter(var Message: TCMGotFocus); message CM_ENTER;
procedure CMExit(var Message: TCMGotFocus); message CM_EXIT;
procedure CreateWnd; override;
public
SkinListBox: TbsSkinCustomListBox;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
property HorizontalExtentValue: Integer
read FHorizontalExtentValue
write FHorizontalExtentValue;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
{$IFDEF VER130}
property AutoComplete: Boolean read FAutoComplete write FAutoComplete;
{$ENDIF}
end;
TbsSkinCustomListBox = class(TbsSkinCustomControl)
protected
FTabWidths: TStrings;
FUseSkinItemHeight: Boolean;
//
FHorizontalExtent: Boolean;
FStopUpDateHScrollBar: Boolean;
//
FRowCount: Integer;
FGlyph: TBitMap;
FNumGlyphs: TbsSkinPanelNumGlyphs;
FSpacing: Integer;
FImages: TCustomImageList;
FImageIndex: Integer;
FOnUpButtonClick, FOnDownButtonClick, FOnCheckButtonClick: TNotifyEvent;
FDefaultItemHeight: Integer;
FDefaultCaptionHeight: Integer;
FDefaultCaptionFont: TFont;
FOnDrawItem: TbsDrawSkinItemEvent;
NewClRect: TRect;
ListRect: TRect;
FCaptionMode: Boolean;
FAlignment: TAlignment;
Buttons: array[0..2] of TbsCBButtonX;
OldActiveButton, ActiveButton, CaptureButton: Integer;
NewCaptionRect: TRect;
FOnListBoxClick: TNotifyEvent;
FOnListBoxDblClick: TNotifyEvent;
FOnListBoxMouseDown: TMouseEvent;
FOnListBoxMouseMove: TMouseMoveEvent;
FOnListBoxMouseUp: TMouseEvent;
FOnListBoxKeyDown: TKeyEvent;
FOnListBoxKeyPress: TKeyPressEvent;
FOnListBoxKeyUp: TKeyEvent;
TimerMode: Integer;
WaitMode: Boolean;
function GetOnListBoxDragDrop: TDragDropEvent;
procedure SetOnListBoxDragDrop(Value: TDragDropEvent);
function GetOnListBoxDragOver: TDragOverEvent;
procedure SetOnListBoxDragOver(Value: TDragOverEvent);
function GetOnListBoxStartDrag: TStartDragEvent;
procedure SetOnListBoxStartDrag(Value: TStartDragEvent);
function GetOnListBoxEndDrag: TEndDragEvent;
procedure SetOnListBoxEndDrag(Value: TEndDragEvent);
function GetFullItemWidth(Index: Integer; ACnvs: TCanvas): Integer; virtual;
procedure SetHorizontalExtent(Value: Boolean);
function GetColumns: Integer;
procedure SetColumns(Value: Integer);
procedure SetRowCount(Value: Integer);
procedure SetImages(Value: TCustomImageList);
procedure SetImageIndex(Value: Integer);
procedure SetGlyph(Value: TBitMap);
procedure SetNumGlyphs(Value: TbsSkinPanelNumGlyphs);
procedure SetSpacing(Value: Integer);
procedure StartTimer;
procedure StopTimer;
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 ListBoxMouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); virtual;
procedure ListBoxMouseMove(Shift: TShiftState; X, Y: Integer); virtual;
procedure ListBoxMouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); virtual;
procedure ListBoxClick; virtual;
procedure ListBoxDblClick; virtual;
procedure ListBoxKeyDown(var Key: Word; Shift: TShiftState); virtual;
procedure ListBoxKeyUp(var Key: Word; Shift: TShiftState); virtual;
procedure ListBoxKeyPress(var Key: Char); virtual;
procedure ListBoxEnter; virtual;
procedure ListBoxExit; virtual;
//
procedure ShowScrollBar;
procedure HideScrollBar;
procedure ShowHScrollBar;
procedure HideHScrollBar;
procedure GetSkinData; override;
procedure CalcRects;
procedure SBChange(Sender: TObject);
procedure HSBChange(Sender: TObject);
procedure CreateParams(var Params: TCreateParams); override;
procedure WMSIZE(var Message: TWMSIZE); message WM_SIZE;
procedure WMTimer(var Message: TWMTimer); message WM_Timer;
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
//
procedure DefaultFontChange; override;
procedure OnDefaultCaptionFontChange(Sender: TObject);
procedure SetDefaultCaptionHeight(Value: Integer);
procedure SetDefaultCaptionFont(Value: TFont);
procedure SetDefaultItemHeight(Value: Integer);
procedure SetCaptionMode(Value: Boolean);
procedure SetAlignment(Value: TAlignment);
procedure SetItems(Value: TStrings);
function GetItems: TStrings;
function GetItemIndex: Integer;
procedure SetItemIndex(Value: Integer);
function GetMultiSelect: Boolean;
procedure SetMultiSelect(Value: Boolean);
function GetListBoxFont: TFont;
procedure SetListBoxFont(Value: TFont);
function GetListBoxTabOrder: TTabOrder;
procedure SetListBoxTabOrder(Value: TTabOrder);
function GetListBoxTabStop: Boolean;
procedure SetListBoxTabStop(Value: Boolean);
function GetListBoxDragMode: TDragMode;
procedure SetListBoxDragMode(Value: TDragMode);
function GetListBoxDragKind: TDragKind;
procedure SetListBoxDragKind(Value: TDragKind);
function GetListBoxDragCursor: TCursor;
procedure SetListBoxDragCursor(Value: TCursor);
//
function GetCanvas: TCanvas;
function GetExtandedSelect: Boolean;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -