📄 dxbarextitems.pas
字号:
function GetInternalRect: TRect;
function GetLeftArrowRect: TRect;
function GetPainter: TdxBarPainter;
function GetRightArrowRect: TRect;
function GetMonthNameRect: TRect;
function GetTodayButtonRect: TRect;
function GetClearButtonRect: TRect;
function GetShowButtonsArea: Boolean;
procedure FreeTimer;
procedure RepaintTodayButton;
procedure RepaintClearButton;
procedure WMDestroy(var Message: TMessage); message WM_DESTROY;
procedure WMNCCalcSize(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;
procedure WMSize(var Message: TWMSize); message WM_SIZE;
procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
protected
function GetStyle: TdxBarCalendarStyle; override;
function GetRealFirstDate: TDateTime; override;
function GetRealLastDate: TDateTime; override;
function GetLastDate: TDateTime; override;
procedure SetFirstDate(Value: TDateTime); override;
procedure SetSelFinish(Value: TDateTime); override;
procedure StepToPast;
procedure StepToFuture;
procedure CancelAll; override;
procedure CheckFirstDate; override;
procedure DeactivateAll;
function PosToDateTime(P: TPoint): TDateTime; override;
procedure CreateParams(var Params: TCreateParams); override;
procedure CreateWnd; override;
procedure DblClick; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure Paint; override;
property ColCount: Integer read FColCount;
property Painter: TdxBarPainter read GetPainter;
property RowCount: Integer read FRowCount;
property ShowButtonsArea: Boolean read GetShowButtonsArea;
public
IsPopup: Boolean;
ShowTodayButton, ShowClearButton: Boolean;
constructor Create(AOwner: TComponent); override;
procedure SetSize;
function GetWidth: Integer;
function GetHeight: Integer;
end;
TdxBarDateOnStart = (bdsToday, bdsNullDate, bdsCustom);
TdxBarDateCombo = class(TCustomdxBarCombo)
private
FDateOnStart: TdxBarDateOnStart;
FDatePopup, FDateNavigator: TdxBarDateNavigator;
FDateEdit: TEdit;
FForm: TForm;
FInternalUpdate: Boolean;
FMinDate: TDateTime;
FMaxDate: TDateTime;
FShowDayText: Boolean;
FShowTodayButton: Boolean;
FShowClearButton: Boolean;
function GetCurDate: TDateTime;
function GetDate: TDateTime;
procedure SetCurDate(Value: TDateTime);
procedure SetDate(Value: TDateTime);
procedure DateChanged(Sender: TObject);
procedure DialogClick(Sender: TObject);
procedure DialogDateChanged(Sender: TObject);
procedure DialogDateEditChange(Sender: TObject);
function GetDateOfText(AText: string): TDateTime;
function GetDateText(ADate: TDateTime): string;
function IsMinDateStored: Boolean;
function IsMaxDateStored: Boolean;
function IsTextStored: Boolean;
procedure SetDateOnStart(Value: TdxBarDateOnStart);
procedure SetMinDate(Value: TDateTime);
procedure SetMaxDate(Value: TDateTime);
procedure SetShowDayText(Value: Boolean);
protected
procedure Loaded; override;
procedure CheckDateOnStart;
procedure CheckRange;
function CheckKeyForDropDownWindow(Key: Word; Shift: TShiftState): Boolean; override;
procedure CloseUp; override;
procedure DropDown(X, Y: Integer); override;
function GetDropDownWindow: HWND; override;
procedure ResetDate;
procedure SetText(Value: string); override;
property DatePopup: TdxBarDateNavigator read FDatePopup;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function CheckDate(ADate: TDateTime): TDateTime;
procedure DoClick; override;
property CurDate: TDateTime read GetCurDate write SetCurDate;
property Date: TDateTime read GetDate write SetDate;
published
property DateOnStart: TdxBarDateOnStart read FDateOnStart write SetDateOnStart default bdsToday;
property MaxDate: TDateTime read FMaxDate write SetMaxDate stored IsMaxDateStored;
property MinDate: TDateTime read FMinDate write SetMinDate stored IsMinDateStored;
property ShowTodayButton: Boolean read FShowTodayButton write FShowTodayButton default True;
property ShowClearButton: Boolean read FShowClearButton write FShowClearButton default True;
property ShowDayText: Boolean read FShowDayText write SetShowDayText default True;
property Text stored IsTextStored;
end;
TdxBarDateComboControl = class(TCustomdxBarComboControl)
private
function GetDate: TDateTime;
function GetItem: TdxBarDateCombo;
procedure SetDate(const Value: TDateTime);
protected
procedure WndProc(var Message: TMessage); override;
property Date: TDateTime read GetDate write SetDate;
public
property Item: TdxBarDateCombo read GetItem;
end;
TdxBarTreeViewCombo = class;
{$IFNDEF DELPHI6}
TdxBarTreeNode = class(TTreeNode)
public
destructor Destroy; override;
end;
{$ENDIF}
TdxBarTreeView = class(TCustomTreeView)
private
FCloseButtonRect, FGripRect: TRect;
FCloseButtonIsTracking: Boolean;
FCombo: TdxBarTreeViewCombo;
FCorner: TdxCorner;
FMouseAboveCloseButton: Boolean;
function FindNode(const AText: string): TTreeNode;
function GetPainter: TdxBarPainter;
procedure SaveAndHide;
procedure TVMSetImageList(var Message: TMessage); message TVM_SETIMAGELIST;
procedure TVMSetItem(var Message: TMessage); message TVM_SETITEM;
procedure WMCaptureChanged(var Message: TMessage); message WM_CAPTURECHANGED;
procedure WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP;
procedure WMNCCalcSize(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
procedure WMNCLButtonDown(var Message: TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;
procedure WMSysColorChange(var Message: TWMSysColorChange); message WM_SYSCOLORCHANGE;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
protected
procedure Change(Node: TTreeNode); override;
{$IFNDEF DELPHI6}
function CreateNode: TTreeNode; override;
{$ENDIF}
procedure CreateParams(var Params: TCreateParams); override;
procedure CreateWnd; override;
procedure DblClick; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
property Painter: TdxBarPainter read GetPainter;
public
IsPopup: Boolean;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure SetFocus; override;
property Items;
property OnDeletion;
property Combo: TdxBarTreeViewCombo read FCombo;
end;
TdxBarTreeViewComboCanSelectNodeEvent = procedure(Sender: TdxBarTreeViewCombo;
Node: TTreeNode; var CanSelect: Boolean) of object;
TdxBarTreeViewCombo = class(TCustomdxBarCombo)
private
FAllowResizing: Boolean;
FButtonOk, FButtonCancel: TButton;
FChooseByDblClick: Boolean;
FForm: TForm;
FFormTreeView, FTreeView: TdxBarTreeView;
FFullExpand: Boolean;
FInSelectedNodeChanged: Boolean;
FLoadedText: string;
FSelectedNode: TTreeNode;
FShowImageInEdit: Boolean;
FOnCanSelectNode: TdxBarTreeViewComboCanSelectNodeEvent;
function GetDropDownHeight: Integer;
function GetDropDownWidth: Integer;
function GetImages: TCustomImageList;
function GetIndent: Integer;
function GetItems: TTreeNodes;
function GetShowButtons: Boolean;
function GetShowLines: Boolean;
function GetShowRoot: Boolean;
function GetSortType: TSortType;
function GetStateImages: TCustomImageList;
function GetOnExpanded: TTVExpandedEvent;
function GetOnExpanding: TTVExpandingEvent;
function GetOnChanging: TTVChangingEvent;
function GetOnCollapsed: TTVExpandedEvent;
function GetOnCollapsing: TTVCollapsingEvent;
function GetOnCompare: TTVCompareEvent;
function GetOnGetImageIndex: TTVExpandedEvent;
function GetOnGetSelectedIndex: TTVExpandedEvent;
function GetOnTreeViewChange: TTVChangedEvent;
procedure SetDropDownHeight(Value: Integer);
procedure SetDropDownWidth(Value: Integer);
procedure SetImages(Value: TCustomImageList);
procedure SetIndent(Value: Integer);
procedure SetItems(Value: TTreeNodes);
procedure SetSelectedNode(Value: TTreeNode);
procedure SetShowButtons(Value: Boolean);
procedure SetShowImageInEdit(Value: Boolean);
procedure SetShowLines(Value: Boolean);
procedure SetShowRoot(Value: Boolean);
procedure SetSortType(Value: TSortType);
procedure SetStateImages(Value: TCustomImageList);
procedure SetOnExpanded(Value: TTVExpandedEvent);
procedure SetOnExpanding(Value: TTVExpandingEvent);
procedure SetOnChanging(Value: TTVChangingEvent);
procedure SetOnCollapsed(Value: TTVExpandedEvent);
procedure SetOnCollapsing(Value: TTVCollapsingEvent);
procedure SetOnCompare(Value: TTVCompareEvent);
procedure SetOnGetImageIndex(Value: TTVExpandedEvent);
procedure SetOnGetSelectedIndex(Value: TTVExpandedEvent);
procedure SetOnTreeViewChange(Value: TTVChangedEvent);
procedure FormSize(Sender: TObject);
protected
function CheckKeyForDropDownWindow(Key: Word; Shift: TShiftState): Boolean; override;
function DoCanSelectNode: Boolean;
procedure DoSelectedNodeChanged; virtual;
procedure DrawInterior(ABarEditControl: TdxBarEditControl; ACanvas: TCanvas;
R: TRect; ItemLink: TdxBarItemLink); override;
procedure DropDown(X, Y: Integer); override;
function GetDropDownWindow: HWND; override;
function HasImageInEdit: Boolean;
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure SetText(Value: string); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure DoClick; override;
property SelectedNode: TTreeNode read FSelectedNode write SetSelectedNode;
property TreeView: TdxBarTreeView read FTreeView;
published
property AllowResizing: Boolean read FAllowResizing write FAllowResizing default True;
property ChooseByDblClick: Boolean read FChooseByDblClick write FChooseByDblClick default True;
property DropDownHeight: Integer read GetDropDownHeight write SetDropDownHeight default 200;
property DropDownWidth: Integer read GetDropDownWidth write SetDropDownWidth default 150;
property FullExpand: Boolean read FFullExpand write FFullExpand default False;
property Images: TCustomImageList read GetImages write SetImages;
property Indent: Integer read GetIndent write SetIndent;
property Items: TTreeNodes read GetItems write SetItems;
property ShowButtons: Boolean read GetShowButtons write SetShowButtons;
property ShowEditor default False;
property ShowImageInEdit: Boolean read FShowImageInEdit write SetShowImageInEdit
default True;
property ShowLines: Boolean read GetShowLines write SetShowLines;
property ShowRoot: Boolean read GetShowRoot write SetShowRoot;
property SortType: TSortType read GetSortType write SetSortType;
property StateImages: TCustomImageList
read GetStateImages write SetStateImages;
property OnExpanded: TTVExpandedEvent read GetOnExpanded write SetOnExpanded;
property OnExpanding: TTVExpandingEvent read GetOnExpanding write SetOnExpanding;
property OnCanSelectNode: TdxBarTreeViewComboCanSelectNodeEvent read FOnCanSelectNode
write FOnCanSelectNode;
property OnChanging: TTVChangingEvent read GetOnChanging write SetOnChanging;
property OnCollapsed: TTVExpandedEvent read GetOnCollapsed write SetOnCollapsed;
property OnCollapsing: TTVCollapsingEvent read GetOnCollapsing write SetOnCollapsing;
property OnCompare: TTVCompareEvent read GetOnCompare write SetOnCompare;
property OnGetImageIndex: TTVExpandedEvent read GetOnGetImageIndex write SetOnGetImageIndex;
property OnGetSelectedIndex: TTVExpandedEvent read GetOnGetSelectedIndex write SetOnGetSelectedIndex;
property OnTreeViewChange: TTVChangedEvent read GetOnTreeViewChange write SetOnTreeViewChange;
end;
TdxBarTreeViewComboControl = class(TCustomdxBarComboControl)
private
function GetItem: TdxBarTreeViewCombo;
protected
function GetDefaultHeight: Integer; override;
procedure SetFocused(Value: Boolean); override;
public
property Item: TdxBarTreeViewCombo read GetItem;
end;
TdxBarImageCombo = class(TdxBarCustomCombo)
private
FDialogListBox: TListBox;
FForm: TForm;
FImageChangeLink: TChangeLink;
FImages: TCustomImageList;
FShowText: Boolean;
function GetImageIndexes(Index: Integer): Integer;
procedure SetImageIndexes(Index: Integer; Value: Integer);
procedure SetImages(Value: TCustomImageList);
procedure SetShowText(Value: Boolean);
procedure ImageListChange(Sender: TObject);
procedure ReadImageIndexes(Reader: TReader);
procedure WriteImageIndexes(Writer: TWriter);
procedure DialogListBoxDblClick(Sender: TObject);
procedure DialogListBoxDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
procedure DialogListBoxMeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
protected
procedure DefineProperties(Filer: TFiler); override;
procedure DrawItem(APainter: TdxBarPainter; AIndex: Integer; ARect: TRect;
AState: TOwnerDrawState); override;
procedure ImagesChanged; virtual;
procedure MeasureItem(AIndex: Integer; var AHeight: Integer); override;
procedure MeasureItemWidth(AIndex: Integer; var AWidth: Integer); override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure DoClick; override;
property ImageIndexes[Index: Integer]: Integer read GetImageIndexes write SetImageIndexes;
published
property Images: TCustomImageList read FImages write SetImages;
property Items;
property ShowEditor default False;
property Sorted;
property ItemIndex; // loading after all
property ShowText: Boolean read FShowText write SetShowText default True;
end;
TdxBarImageComboControl = class(TdxBarComboControl)
protected
function GetDefaultHeight: Integer; override;
procedure ImagesChanged; virtual;
end;
TdxBarToolbarsListItem = class(TCustomdxBarSubItem)
protected
function InternalCanMergeWith(AItem: TdxBarItem): Boolean; override;
end;
TdxBarToolbarsListItemControl = class(TdxBarSubItemControl)
protected
procedure CreateSubMenuControl; override;
end;
TdxBarSpinEdit = class;
TdxBarSpinEditValueType = (svtInteger, svtFloat);
TdxBarSpinEditPrefixPlace = (ppStart, ppEnd);
TdxBarSpinEditButtonClickEvent = procedure(Sender: TdxBarSpinEdit;
Button: TdxBarSpinEditButton) of object;
TdxBarSpinEdit = class(TdxBarEdit)
private
FIncrement: Extended;
FMaxValue: Extended;
FMinValue: Extended;
FPrefix: string;
FPrefixPlace: TdxBarSpinEditPrefixPlace;
FValueType: TdxBarSpinEditValueType;
FOnButtonClick: TdxBarSpinEditButtonClickEvent;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -