📄 bsskinboxctrls.pas
字号:
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;
end;
TbsSkinComboBox = class(TbsSkinCustomComboBox)
published
property AlphaBlend;
property AlphaBlendValue;
property AlphaBlendAnimation;
property AutoComplete;
property ListBoxUseSkinFont;
property ListBoxUseSkinItemHeight;
property Images;
property ImageIndex;
property ListBoxCaption;
property ListBoxCaptionMode;
property ListBoxDefaultFont;
property ListBoxDefaultCaptionFont;
property ListBoxDefaultItemHeight;
property ListBoxCaptionAlignment;
property Enabled;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property Visible;
//
property Text;
property Align;
property Items;
property ItemIndex;
property DropDownCount;
property HorizontalExtent;
property Font;
property Sorted;
property Style;
property OnListBoxDrawItem;
property OnComboBoxDrawItem;
property OnChange;
property OnClick;
property OnCloseUp;
property OnDropDown;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnEnter;
property OnExit;
end;
TbsColorBoxStyles = (bscbStandardColors, bscbExtendedColors, bscbSystemColors,
bscbIncludeNone, bscbIncludeDefault, bscbCustomColor,
bscbPrettyNames);
TbsColorBoxStyle = set of TbsColorBoxStyles;
TbsSkinColorComboBox = class(TbsSkinCustomComboBox)
private
FShowNames: Boolean;
FExStyle: TbsColorBoxStyle;
FNeedToPopulate: Boolean;
FListSelected: Boolean;
FDefaultColorColor: TColor;
FNoneColorColor: TColor;
FSelectedColor: TColor;
procedure SetShowNames(Value: Boolean);
function GetColor(Index: Integer): TColor;
function GetColorName(Index: Integer): string;
function GetSelected: TColor;
procedure SetSelected(const AColor: TColor);
procedure ColorCallBack(const AName: string);
procedure SetDefaultColorColor(const Value: TColor);
procedure SetNoneColorColor(const Value: TColor);
procedure SetExStyle(AStyle: TbsColorBoxStyle);
protected
procedure DrawColorItem(Cnvs: TCanvas; Index: Integer;
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState);
procedure CreateWnd; override;
function PickCustomColor: Boolean; virtual;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure OnLBCloseUp(Sender: TObject);
public
constructor Create(AOwner: TComponent); override;
property Colors[Index: Integer]: TColor read GetColor;
property ColorNames[Index: Integer]: string read GetColorName;
procedure PopulateList;
published
property AutoComplete;
property AlphaBlend;
property AlphaBlendValue;
property ListBoxCaption;
property ListBoxCaptionMode;
property Enabled;
property PopupMenu;
property ShowHint;
property TabOrder;
property Visible;
//
property Align;
property ItemIndex;
property DropDownCount;
property Font;
property Sorted;
property ExStyle: TbsColorBoxStyle read FExStyle write SetExStyle
default [bscbStandardColors, bscbExtendedColors, bscbSystemColors];
property Selected: TColor read GetSelected write SetSelected default clBlack;
property DefaultColorColor: TColor read FDefaultColorColor write SetDefaultColorColor default clBlack;
property NoneColorColor: TColor read FNoneColorColor write SetNoneColorColor default clBlack;
property ShowNames: Boolean read FShowNames write SetShowNames;
property OnClick;
property OnChange;
end;
TbsFontDevice = (fdScreen, fdPrinter, fdBoth);
TbsFontListOption = (foAnsiOnly, foTrueTypeOnly, foFixedPitchOnly,
foNoOEMFonts, foOEMFontsOnly, foScalableOnly, foNoSymbolFonts);
TbsFontListOptions = set of TbsFontListOption;
TbsSkinFontComboBox = class(TbsSkinCustomComboBox)
protected
FDevice: TbsFontDevice;
FUpdate: Boolean;
FUseFonts: Boolean;
FOptions: TbsFontListOptions;
procedure SetFontName(const NewFontName: TFontName);
function GetFontName: TFontName;
function GetTrueTypeOnly: Boolean;
procedure SetDevice(Value: TbsFontDevice);
procedure SetOptions(Value: TbsFontListOptions);
procedure SetTrueTypeOnly(Value: Boolean);
procedure SetUseFonts(Value: Boolean);
procedure Reset;
procedure WMFontChange(var Message: TMessage); message WM_FONTCHANGE;
procedure DrawLBFontItem(Cnvs: TCanvas; Index: Integer;
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState);
procedure DrawCBFontItem(Cnvs: TCanvas; Index: Integer;
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState);
procedure CreateWnd; override;
procedure DrawTT(Cnvs: TCanvas; X, Y: Integer; C: TColor);
public
constructor Create(AOwner: TComponent); override;
procedure PopulateList;
published
property AutoComplete;
property AlphaBlend;
property AlphaBlendValue;
property ListBoxCaption;
property ListBoxCaptionMode;
property Enabled;
property PopupMenu;
property ShowHint;
property TabOrder;
property Visible;
//
property Align;
property ItemIndex;
property DropDownCount;
property Font;
property Sorted;
property Style;
property OnChange;
property OnClick;
//
property Device: TbsFontDevice read FDevice write SetDevice default fdScreen;
property FontName: TFontName read GetFontName write SetFontName;
property Options: TbsFontListOptions read FOptions write SetOptions default [];
property TrueTypeOnly: Boolean read GetTrueTypeOnly write SetTrueTypeOnly
stored False;
property UseFonts: Boolean read FUseFonts write SetUseFonts default False;
end;
TbsValueType = (vtInteger, vtFloat);
TbsSkinSpinEdit = class(TbsSkinCustomControl)
private
FMouseIn: Boolean;
FEditFocused: Boolean;
StopCheck: Boolean;
FDecimal: Byte;
FMinValue, FMaxValue, FIncrement: Double;
FromEdit: Boolean;
FValueType: TbsValueType;
FOnChange: TNotifyEvent;
FValue: Double;
OldActiveButton, ActiveButton, CaptureButton: Integer;
TimerMode: Integer;
WaitMode: Boolean;
procedure StartTimer;
procedure StopTimer;
procedure SetValue(AValue: Double);
procedure SetMinValue(AValue: Double);
procedure SetMaxValue(AValue: Double);
procedure SetEditorEnabled(AValue: Boolean);
function GetEditorEnabled: Boolean;
procedure SetMaxLength(AValue: Integer);
function GetMaxLength: Integer;
procedure SetValueType(NewType: TbsValueType);
procedure SetDecimal(NewValue: Byte);
protected
Buttons: array[0..1] of TbsCBButtonX;
FOnEditKeyDown: TKeyEvent;
FOnEditKeyPress: TKeyPressEvent;
FOnEditKeyUp: TKeyEvent;
FOnEditEnter: TNotifyEvent;
FOnEditExit: TNotifyEvent;
procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); virtual;
procedure EditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); virtual;
procedure EditKeyPress(Sender: TObject; var Key: Char); virtual;
procedure EditEnter(Sender: TObject); virtual;
procedure EditExit(Sender: TObject); virtual;
procedure EditMouseEnter(Sender: TObject);
procedure EditMouseLeave(Sender: TObject);
procedure UpClick(Sender: TObject);
procedure DownClick(Sender: TObject);
function CheckValue (NewValue: Double): Double;
procedure EditChange(Sender: TObject);
procedure ButtonDown(I: Integer; X, Y: Integer);
procedure ButtonUp(I: Integer; X, Y: Integer);
procedure ButtonEnter(I: Integer);
procedure ButtonLeave(I: Integer);
procedure TestActive(X, Y: Integer);
procedure CalcRects;
procedure DrawButton(Cnvs: TCanvas; i: Integer);
procedure CMEnabledChanged(var Msg: TMessage); message CM_ENABLEDCHANGED;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMFocusChanged(var Message: TCMFocusChanged); message CM_FOCUSCHANGED;
procedure WMSIZE(var Message: TWMSIZE); message WM_SIZE;
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
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 GetSkinData; override;
procedure DefaultFontChange; override;
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure CreateControlSkinImage(B: TBitMap); override;
procedure Change; virtual;
public
ActiveSkinRect: TRect;
FontName: String;
FontStyle: TFontStyles;
FontHeight: Integer;
FontColor, DisabledFontColor, ActiveFontColor: TColor;
UpButtonRect, ActiveUpButtonRect, DownUpButtonRect: TRect;
DownButtonRect, ActiveDownButtonRect, DownDownButtonRect: TRect;
LOffset, ROffset: Integer;
//
FEdit: TbsSkinNumEdit;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Invalidate; override;
function IsNumText(AText: String): Boolean;
procedure ChangeSkinData; override;
property Text;
procedure SimpleSetValue(AValue: Double);
published
property Enabled;
property ValueType: TbsValueType read FValueType write SetValueType;
property Decimal: Byte read FDecimal write SetDecimal default 2;
property Align;
property MinValue: Double read FMinValue write SetMinValue;
property MaxValue: Double read FMaxValue write SetMaxValue;
property Value: Double read FValue write SetValue;
property Increment: Double read FIncrement write FIncrement;
property EditorEnabled: Boolean read GetEditorEnabled write SetEditorEnabled;
property MaxLength: Integer read GetMaxLength write SetMaxLength;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnEditKeyDown: TKeyEvent read FOnEditKeyDown write FOnEditKeyDown;
property OnEditKeyPress: TKeyPressEvent read FOnEditKeyPress write FOnEditKeyPress;
property OnEditKeyUp: TKeyEvent read FOnEditKeyUp write FOnEditKeyUp;
property OnEditEnter: TNotifyEvent read FOnEditEnter write FOnEditEnter;
property OnEditExit: TNotifyEvent read FOnEditExit write FOnEditExit;
end;
TbsSkinCheckListBox = class;
TbsCheckListBox = class(TListBox)
protected
{$IFDEF VER130}
FAutoComplete: Boolean;
FLastTime: Cardinal;
FFilter: String;
{$ENDIF}
FSaveStates: TList;
FOnClickCheck: TNotifyEvent;
procedure SkinDrawCheckImage(X, Y: Integer; Cnvs: TCanvas; IR: TRect; DestCnvs: TCanvas);
procedure PaintBGWH(Cnvs: TCanvas; AW, AH, AX, AY: Integer);
function CreateWrapper(Index: Integer): TObject;
function GetWrapper(Index: Integer): TObject;
function HaveWrapper(Index: Integer): Boolean;
function ExtractWrapper(Index: Integer): TObject;
procedure InvalidateCheck(Index: Integer);
procedure SetChecked(Index: Integer; Checked: Boolean);
function GetChecked(Index: Integer): Boolean;
procedure SetState(Index: Integer; AState: TCheckBoxState);
function GetState(Index: Integer): TCheckBoxState;
function GetState1(AItemID: Integer): TOwnerDrawState;
procedure ToggleClickCheck(Index: Integer);
procedure DeleteString(Index: Integer); override;
procedure ResetContent; override;
procedure SetItemData(Index: Integer; AData: LongInt); override;
function GetItemData(Index: Integer): LongInt; override;
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 M
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -