📄 skinboxctrls.pas
字号:
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState);
function GetSorted: Boolean;
procedure SetSorted(Value: Boolean);
procedure SetStyle(Value: TspSkinCustomComboBoxStyle);
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);
procedure SetItems(Value: TStrings);
function GetItems: TStrings;
procedure SetListBoxDrawItem(Value: TspDrawSkinItemEvent);
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 DrawResizeButton(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 WMTimer(var Message: TWMTimer); message WM_Timer;
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 WMEraseBkgnd(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure CMWantSpecialKey(var Msg: TCMWantSpecialKey); message CM_WANTSPECIALKEY;
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
procedure DefaultFontChange; override;
procedure CreateControlDefaultImage(B: TBitMap); override;
procedure CreateControlSkinImage(B: TBitMap); override;
procedure CreateControlToolSkinImage(B: TBitMap; AText: String);
procedure CreateControlToolDefaultImage(B: TBitMap; AText: String);
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure Change; virtual;
procedure CalcSize(var W, H: Integer); override;
procedure SetControlRegion; override;
procedure SetDefaultColor(Value: TColor);
function GetDisabledFontColor: TColor;
function GetTabWidths: TStrings;
procedure SetTabWidths(Value: TStrings);
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 ChangeSkinData; override;
procedure CloseUp(Value: Boolean);
procedure DropDown;
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 ListBoxUseSkinFont: Boolean
read GetListBoxUseSkinFont write SetListBoxUseSkinFont;
property ListBoxWidth: Integer read FListBoxWidth write FListBoxWidth;
property ListBoxAlphaBlend: Boolean read FListBoxAlphaBlend write FListBoxAlphaBlend;
property ListBoxAlphaBlendAnimation: Boolean
read FListBoxAlphaBlendAnimation write FListBoxAlphaBlendAnimation;
property ListBoxAlphaBlendValue: Byte read FListBoxAlphaBlendValue write FListBoxAlphaBlendValue;
property ListBoxUseSkinItemHeight: Boolean
read GetListBoxUseSkinItemHeight write SetListBoxUseSkinItemHeight;
property Images: TCustomImageList read GetImages write SetImages;
property ImageIndex: Integer read GetImageIndex write SetImageIndex;
property ListBoxCaption: String read GetListBoxCaption
write SetListBoxCaption;
property ListBoxCaptionMode: Boolean read GetListBoxCaptionMode
write SetListBoxCaptionMode;
property ListBoxDefaultFont: TFont
read GetListBoxDefaultFont write SetListBoxDefaultFont;
property ListBoxDefaultCaptionFont: TFont
read GetListBoxDefaultCaptionFont write SetListBoxDefaultCaptionFont;
property ListBoxDefaultItemHeight: Integer
read GetListBoxDefaultItemHeight write SetListBoxDefaultItemHeight;
property ListBoxCaptionAlignment: TAlignment
read GetListBoxCaptionAlignment write SetListBoxCaptionAlignment;
property TabWidths: TStrings read GetTabWidths write SetTabWidths;
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: TspSkinCustomComboBoxStyle read FStyle write SetStyle;
property SelStart: Integer read GetSelStart write SetSelStart;
property SelLength: Integer read GetSelLength write SetSelLength;
property OnListBoxDrawItem: TspDrawSkinItemEvent
read FOnListBoxDrawItem write SetListBoxDrawItem;
property OnComboBoxDrawItem: TspDrawSkinItemEvent
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;
TspSkinComboBox = class(TspSkinCustomComboBox)
published
property ToolButtonStyle;
property HideSelection;
property AutoComplete;
property HorizontalExtent;
property Images;
property ImageIndex;
property ListBoxUseSkinItemHeight;
property ListBoxAlphaBlend;
property ListBoxAlphaBlendAnimation;
property ListBoxAlphaBlendValue;
property ListBoxWidth;
property ListBoxCaption;
property ListBoxCaptionMode;
property ListBoxUseSkinFont;
property ListBoxDefaultFont;
property ListBoxDefaultCaptionFont;
property ListBoxDefaultItemHeight;
property ListBoxCaptionAlignment;
property TabWidths;
property Enabled;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop default True;
property Visible;
property CharCase;
//
property DefaultColor;
property Text;
property Align;
property Items;
property ItemIndex;
property DropDownCount;
property Font;
property Sorted;
property Style;
property OnListBoxDrawItem;
property OnComboBoxDrawItem;
property OnChange;
property OnClick;
property OnCloseUp;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnEnter;
property OnExit;
property OnDropDown;
end;
TspSkinMRUComboBox = class(TspSkinComboBox)
public
procedure AddMRUItem(Value: String);
end;
TspColorBoxStyles = (spcbStandardColors, // first sixteen RGBI colors
spcbExtendedColors, // four additional reserved colors
spcbSystemColors, // system managed/defined colors
spcbIncludeNone, // include clNone color, must be used with cbSystemColors
spcbIncludeDefault, // include clDefault color, must be used with cbSystemColors
spcbCustomColor, // first color is customizable
spcbPrettyNames); // instead of 'clColorNames' you get 'Color Names'
TspColorBoxStyle = set of TspColorBoxStyles;
TspSkinColorComboBox = class(TspSkinCustomComboBox)
private
FShowNames: Boolean;
FExStyle: TspColorBoxStyle;
FNeedToPopulate: 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: TspColorBoxStyle);
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);
procedure Loaded; override;
public
constructor Create(AOwner: TComponent); override;
procedure PopulateList;
property Colors[Index: Integer]: TColor read GetColor;
property ColorNames[Index: Integer]: string read GetColorName;
published
property ToolButtonStyle;
property HideSelection;
property AutoComplete;
property ListBoxWidth;
property ListBoxUseSkinItemHeight;
property ListBoxAlphaBlend;
property ListBoxAlphaBlendAnimation;
property ListBoxAlphaBlendValue;
property ListBoxCaption;
property ListBoxCaptionMode;
property ListBoxUseSkinFont;
property ListBoxDefaultFont;
property ListBoxDefaultCaptionFont;
property ListBoxDefaultItemHeight;
property ListBoxCaptionAlignment;
property Enabled;
property PopupMenu;
property ShowHint;
property TabOrder;
property Visible;
//
property Align;
property ItemIndex;
property DropDownCount;
property Font;
property Sorted;
property OnChange;
property OnClick;
//
property ExStyle: TspColorBoxStyle read FExStyle write SetExStyle
default [spcbStandardColors, spcbExtendedColors, spcbSystemColors];
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;
end;
TspSkinColorListBox = class(TspSkinListBox)
private
FShowNames: Boolean;
FExStyle: TspColorBoxStyle;
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: TspColorBoxStyle);
protected
procedure DrawColorItem(Cnvs: TCanvas; Index: Integer;
ItemWidth, ItemHeight: Integer; TextRect: TRect; State: TOwnerDrawState);
procedure CreateWnd; override;
function PickCustomColor: Boolean; virtual;
procedure Loaded; override;
procedure
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -