📄 skinboxctrls.pas
字号:
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);
TspPopupListBox = class(TspSkinListBox)
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;
TspCBItem = record
R: TRect;
State: TOwnerDrawState;
end;
TspSkinCustomComboBoxStyle = (spcbEditStyle, spcbFixedStyle);
TspSkinCustomComboBox = class(TspSkinCustomControl)
protected
FListBoxAlphaBlend: Boolean;
FListBoxAlphaBlendAnimation: Boolean;
FListBoxAlphaBlendValue: Byte;
FStyle: TspSkinCustomComboBoxStyle;
FOnChange: TNotifyEvent;
FOnClick: TNotifyEvent;
FOnCloseUp: TNotifyEvent;
FOnListBoxDrawItem: TspDrawSkinItemEvent;
FOnComboBoxDrawItem: TspDrawSkinItemEvent;
FMouseIn: Boolean;
FOldItemIndex: Integer;
FDropDownCount: Integer;
FLBDown: Boolean;
FListBoxWindowProc: TWndMethod;
FEditWindowProc: TWndMethod;
//
FListBox: TspPopupListBox;
//
CBItem: TspCBItem;
Button: TspCBButtonX;
FEdit: TspCustomEdit;
FromEdit: Boolean;
function GetImages: TCustomImageList;
function GetImageIndex: Integer;
procedure SetImages(Value: TCustomImageList);
procedure SetImageIndex(Value: Integer);
function GetHorizontalExtent: Boolean;
procedure SetHorizontalExtent(Value: Boolean);
procedure EditCancelMode(C: TControl);
function GetListBoxDefaultFont: TFont;
procedure SetListBoxDefaultFont(Value: TFont);
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 ListBoxDrawItem(Cnvs: TCanvas; Index: Integer;
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);
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 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 KeyDown(var Key: Word; Shift: TShiftState); 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 Notification(AComponent: TComponent; Operation: TOperation); override;
procedure Change; virtual;
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;
function IsPopupVisible: Boolean;
function CanCancelDropDown: Boolean;
procedure Invalidate; override;
public
property ListBoxAlphaBlend: Boolean read FListBoxAlphaBlend write FListBoxAlphaBlend;
property ListBoxAlphaBlendAnimation: Boolean
read FListBoxAlphaBlendAnimation write FListBoxAlphaBlendAnimation;
property ListBoxAlphaBlendValue: Byte read FListBoxAlphaBlendValue write FListBoxAlphaBlendValue;
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 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: TspSkinCustomComboBoxStyle read FStyle write SetStyle;
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;
end;
TspSkinComboBox = class(TspSkinCustomComboBox)
published
property ListBoxAlphaBlend;
property ListBoxAlphaBlendAnimation;
property ListBoxAlphaBlendValue;
property TabStop;
property HorizontalExtent;
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 Visible;
//
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;
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;
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: 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);
public
constructor Create(AOwner: TComponent); override;
procedure PopulateList;
property Colors[Index: Integer]: TColor read GetColor;
property ColorNames[Index: Integer]: string read GetColorName;
published
property ListBoxCaption;
property ListBoxCaptionMode;
property ListBoxAlphaBlend;
property ListBoxAlphaBlendValue;
property ListBoxAlphaBlendAnimation;
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;
TspFontDevice = (fdScreen, fdPrinter, fdBoth);
TspFontListOption = (foAnsiOnly, foTrueTypeOnly, foFixedPitchOnly,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -