📄 dbgrideh.pas
字号:
procedure SetStyle(const Value: TDBGridEhStyle);
procedure SetSumList(const Value: TDBGridEhSumList);
procedure SetTitleFont(Value: TFont);
procedure SetTitleImages(const Value: TCustomImageList);
procedure SetVertScrollBar(const Value: TDBGridEhScrollBar);
procedure TitleFontChanged(Sender: TObject);
procedure UpdateData;
procedure UpdateIme;
{$IFDEF EH_LIB_VCL}
procedure WMCancelMode(var Message: TMessage); message WM_CANCELMODE;
procedure WMChar(var Message: TWMChar); message WM_CHAR;
procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND; //tmp
procedure WMGetDlgCode(var Msg: TWMGetDlgCode); message WM_GETDLGCODE;
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
procedure WMIMEStartComp(var Message: TMessage); message WM_IME_STARTCOMPOSITION;
procedure WMKillFocus(var Message: TMessage); message WM_KillFocus;
procedure WMNCCalcSize(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure WMNCPaint(var Message: TMessage); message WM_NCPAINT;
procedure WMSetCursor(var Msg: TWMSetCursor); message WM_SETCURSOR;
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SetFOCUS;
procedure WMSize(var Message: TWMSize); message WM_SIZE;
procedure WMTimer(var Message: TWMTimer); message WM_TIMER;
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
{$ENDIF}
procedure WriteColumns(Writer: TWriter);
protected
// FSortMarkerImages: TImageList;
FAcquireFocus: Boolean;
FAllowWordWrap: Boolean; // True if RowHeight + 3 > TextHeight
FAntiSelection: Boolean;
FAutoFitColWidths: Boolean;
FBorderWidth: Integer;
FColCellParamsEh: TColCellParamsEh;
FDataTracking: Boolean;
FDBGridEhState: TDBGridEhState;
FDefaultRowChanged: Boolean;
FDownMousePos: TPoint;
FDrawMemoText: Boolean;
FFooterRowCount: Integer;
FFrozenCols: Integer;
FHeadTree: THeadTreeNode;
FHTitleMargin: Integer;
FIndicatorPressed: Boolean;
FInitColWidth: TList;
FInplaceEditorButtonHeight: Integer;
FInplaceEditorButtonWidth: Integer;
FInplaceSearching: Boolean;
FInplaceSearchingInProcess: Boolean;
FInplaceSearchText: String;
FInplaceSearchTimeOut: Integer;
FInplaceSearchTimerActive: Boolean;
FLeafFieldArr: PTLeafCol;
FLockedBookmark: TBookmarkStr;
FLockPaint: Boolean;
FLookedOffset: Integer;
FMarginText: Boolean;
FMinAutoFitWidth: Integer;
FMouseShift: TShiftState;
FMoveMousePos: TPoint;
FNewRowHeight: Integer;
FOnCheckButton: TCheckTitleEhBtnEvent;
FOnDrawFooterCell: TDrawFooterCellEvent;
FOnGetBtnParams: TGetBtnEhParamsEvent;
FOnTitleBtnClick: TTitleEhClickEvent;
FPresedRecord: TBookMarkStr;
FPressed: Boolean;
FPressedCell: TGridCoord;
FPressedCol: Longint;
FRowLines: Integer;
FRowSizingAllowed: Boolean;
FSelectionActive: Boolean;
FSelectionAnchorSelected: Boolean;
FSortMarkedColumns: TColumnsEhList;
FSumList: TDBGridEhSumList;
FSwapButtons: Boolean;
FTimerActive: Boolean;
FTimerInterval: Integer;
FTitleHeight: Integer;
FTitleHeightFull: Integer;
FTitleLines: Integer;
FTracking: Boolean;
FUpdateFields: Boolean;
FUpdatingEditor: Boolean;
FUseMultiTitle: Boolean;
FVertScrollBarVisibleMode: TScrollBarVisibleModeEh;
FVisibleColumns: TColumnsEhList;
FVTitleMargin: Integer;
function AcquireFocus: Boolean; virtual;
function AcquireLayoutLock: Boolean;
function AllowedOperationUpdate: Boolean;
function CanDrawFocusRowRect: Boolean; virtual;
function CanEditAcceptKey(Key: Char): Boolean; override;
function CanEditModify: Boolean; override;
function CanEditModifyColumn(Index: Integer): Boolean;
function CanEditModifyText: Boolean;
function CanEditorMode: Boolean; virtual;
function CanEditShow: Boolean; override;
function CanSelectType(const Value: TDBGridEhSelectionType): Boolean;
function CellHave3DRect(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState): Boolean; virtual;
function CellIsMultiSelected(ACol, ARow: Integer; DataCol: Integer; DataRowBkmrk: TBookmarkStr): Boolean; virtual;
function CreateColumnDefValues: TColumnDefValuesEh; dynamic;
function CreateColumns: TDBGridColumnsEh; dynamic;
function CreateEditor: TInplaceEdit; override;
function CreateScrollBar(AKind: TScrollBarKind): TDBGridEhScrollBar; dynamic;
function DataToRawColumn(ACol: Integer): Integer;
{$IFDEF EH_LIB_VCL}
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
{$ENDIF}
function FrozenSizing(X, Y: Integer): Boolean;
function GetCellType(ACol, ARow: Integer; var DataCol, DataRow: Integer): TCellTypeEh;
function GetColField(DataCol: Integer): TField;
function GetColWidths(Index: Longint): Integer;
function GetEditLimit: Integer; override;
{$IFDEF EH_LIB_VCL}
function GetEditMask(ACol, ARow: Longint): string; override;
function GetEditText(ACol, ARow: Longint): string; override;
{$ENDIF}
function GetFieldValue(ACol: Integer): string;
function GetFooterRowCount: Integer;
function GetRowHeight: Integer;
function GetRowLines: Integer;
function GetSubTitleRowHeights(ASubTitleRow: Integer): Integer;
function GetSubTitleRows: Integer; virtual;
function GetTitleRows: Integer; virtual;
function HighlightNoDataCellColor(ACol, ARow: Integer; DataCol, DataRow: Integer;
CellType: TCellTypeEh; AState: TGridDrawState; InMultiSelect: Boolean; var AColor: TColor;
AFont: TFont): Boolean; virtual;
function HighlightDataCellColor(DataCol, DataRow: Integer; const Value: string;
AState: TGridDrawState; var AColor: TColor; AFont: TFont): Boolean; virtual;
function InplaceEditorVisible: Boolean;
function IsSelectionActive: Boolean; virtual;
function RawToDataColumn(ACol: Integer): Integer;
function ReadTitleHeight: Integer;
function ReadTitleLines: Integer;
function SetChildTreeHeight(ANode: THeadTreeNode): Integer;
function StdDefaultRowHeight: Integer;
function StoreColumns: Boolean;
function VisibleDataRowCount: Integer;
procedure BeginLayout;
procedure BeginUpdate;
procedure CalcDrawInfoEh(var DrawInfo: TGridDrawInfoEh);
procedure CalcFixedInfoEh(var DrawInfo: TGridDrawInfoEh);
procedure CalcFrozenSizingState(X, Y: Integer; var State: TDBGridEhState;
var Index: Longint; var SizingPos, SizingOfs: Integer);
procedure CalcSizingState(X, Y: Integer; var State: TGridState;
var Index: Longint; var SizingPos, SizingOfs: Integer;
var FixedInfo: TGridDrawInfo); override;
procedure CancelLayout;
procedure CellClick(Column: TColumnEh); dynamic;
{$IFDEF EH_LIB_VCL}
procedure ChangeScale(M, D: Integer); override;
{$ENDIF}
procedure CheckTitleButton(ACol: Longint; var Enabled: Boolean); dynamic;
procedure ClearPainted(node: THeadTreeNode);
procedure ColEnter; dynamic;
procedure ColExit; dynamic;
procedure ColumnMoved(FromIndex, ToIndex: Longint); override;
procedure ColWidthsChanged; override;
{$IFDEF EH_LIB_VCL}
procedure CreateParams(var Params: TCreateParams); override;
procedure CreateWnd; override;
{$ENDIF}
procedure DataChanged; virtual;
procedure DeferLayout;
procedure DefineFieldMap; virtual;
procedure DefineProperties(Filer: TFiler); override;
procedure DoExit; override;
procedure DoSortMarkingChanged; dynamic;
procedure DoTitleClick(ACol: Longint; AColumn: TColumnEh); dynamic;
procedure DrawBorder; virtual;
procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
procedure DrawColumnCell(const Rect: TRect; DataCol: Integer;
Column: TColumnEh; State: TGridDrawState); dynamic;
procedure DrawDataCell(const Rect: TRect; Field: TField; State: TGridDrawState); dynamic; { obsolete }
procedure DrawSubTitleCell(ACol, ARow: Longint; DataCol, DataRow: Integer;
CellType: TCellTypeEh; ARect: TRect; AState: TGridDrawState; var Highlighted: Boolean); virtual;
procedure DrawSizingLine(HorzGridBoundary, VertGridBoundary: Integer);
procedure EditButtonClick; dynamic;
procedure EndLayout;
procedure EndUpdate;
procedure GetCellParams(Column: TColumnEh; AFont: TFont;
var Background: TColor; State: TGridDrawState); dynamic;
procedure GetDatasetFieldList(FieldList: TList); virtual;
procedure GetFooterParams(DataCol, Row: Longint; Column: TColumnEh; AFont: TFont;
var Background: TColor; var Alignment: TAlignment; State: TGridDrawState; var Text: String); dynamic;
procedure InvalidateEditor;
procedure InvalidateGridRect(ARect: TGridRect);
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
procedure LayoutChanged; virtual;
procedure LinkActive(Value: Boolean); virtual;
procedure Loaded; 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 Notification(AComponent: TComponent; Operation: TOperation); override;
procedure Paint; override;
{$IFDEF EH_LIB_VCL}
procedure PaintButtonControl(DC: HDC; ARect: TRect; ParentColor: TColor;
Style: TDrawButtonControlStyleEh; DownButton: Integer;
Flat, Active, Enabled: Boolean; State: TCheckBoxState);
{$ENDIF}
// procedure RecreateInplaceSearchIndicator;
procedure RegetDefaultStyle;
procedure ResetTimer(Interval: Integer);
procedure RestoreColumnsLayoutProducer(ARegIni: TObject; Section: String;
RestoreParams: TColumnEhRestoreParams);
procedure RestoreGridLayoutProducer(ARegIni: TObject; Section: String;
RestoreParams: TDBGridEhRestoreParams);
procedure RowHeightsChanged; override;
procedure SaveColumnsLayoutProducer(ARegIni: TObject; Section: String; DeleteSection: Boolean);
procedure SaveGridLayoutProducer(ARegIni: TObject; Section: String; DeleteSection: Boolean);
procedure Scroll(Distance: Integer); virtual;
procedure SelectionActiveChanged; virtual;
procedure SetColumnAttributes; virtual;
procedure SetColWidths(Index: Longint; Value: Integer);
{$IFDEF EH_LIB_VCL}
procedure SetEditText(ACol, ARow: Longint; const Value: string); override;
{$ENDIF}
procedure SetFooterRowCount(Value: Integer);
procedure SetFrozenCols(Value: Integer);
procedure SetRowHeight(Value: Integer);
procedure SetRowLines(Value: Integer);
procedure SetRowSizingAllowed(Value: Boolean);
procedure ShowEditor; virtual;
procedure StartInplaceSearchTimer;
procedure StopInplaceSearchTimer;
procedure StopTimer;
procedure StopTracking;
procedure StyleEhChanged;
procedure SumListAfterRecalcAll(Sender: TObject);
procedure SumListChanged(Sender: TObject);
procedure SumListRecalcAll(Sender: TObject);
procedure TimedScroll(Direction: TGridScrollDirection); override;
procedure TimerScroll; virtual;
procedure TitleClick(Column: TColumnEh); dynamic;
procedure TopLeftChanged; override;
procedure TrackButton(X, Y: Integer);
procedure UpdateActive; virtual;
procedure UpdateHorzExtScrollBar; virtual;
procedure UpdateRowCount; virtual;
procedure UpdateScrollBar; virtual;
{$IFDEF EH_LIB_VCL}
procedure WndProc(var Message: TMessage); override;
{$ENDIF}
procedure WriteAutoFitColWidths(Value: Boolean);
procedure WriteCellText(ACanvas: TCanvas; ARect: TRect; FillRect: Boolean; DX, DY: Integer;
Text: string; Alignment: TAlignment; Layout: TTextLayout; MultyL: Boolean;
EndEllipsis: Boolean; LeftMarg, RightMarg: Integer);
procedure WriteHTitleMargin(Value: Integer);
procedure WriteMarginText(IsMargin: Boolean);
procedure WriteMinAutoFitWidth(Value: Integer);
procedure WriteTitleHeight(th: Integer);
procedure WriteTitleLines(tl: Integer);
procedure WriteUseMultiTitle(Value: Boolean);
procedure WriteVTitleMargin(Value: Integer);
property DataLink: TGridDataLinkEh read FDataLink;
property DefaultDrawing: Boolean read FDefaultDrawing write FDefaultDrawing default True;
property FooterColor: TColor read FFooterColor write SetFooterColor;
property FooterFont: TFont read FFooterFont write SetFooterFont;
property LayoutLock: Byte read FLayoutLock;
property OnCellClick: TDBGridEhClickEvent read FOnCellClick write FOnCellClick;
property OnColEnter: TNotifyEvent read FOnColEnter write FOnColEnter;
property OnColExit: TNotifyEvent read FOnColExit write FOnColExit;
property OnColumnMoved: TMovedEvent read FOnColumnMoved write FOnColumnMoved;
property OnDrawColumnCell: TDrawColumnEhCellEvent read FOnDrawColumnCell write FOnDrawColumnCell;
property OnDrawDataCell: TDrawDataCellEvent read FOnDrawDataCell write FOnDrawDataCell; { obsolete }
property OnEditButtonClick: TNotifyEvent read FOnEditButtonClick write FOnEditButtonClick;
property OnTitleClick: TDBGridEhClickEvent read FOnTitleClick write FOnTitleClick;
property ParentColor default False;
property ReadOnly: Boolean read FReadOnly write SetReadOnly default False;
property SelectedRows: TBookmarkListEh read FBookmarks;
property UpdateLock: Byte read FUpdateLock;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function CellRect(ACol, ARow: Longint): TRect;
function CheckCopyAction: Boolean;
function CheckCutAction: Boolean;
function CheckDeleteAction: Boolean;
function CheckPasteAction: Boolean;
function CheckSelectAllAction: Boolean;
function DataBox: TGridRect;
function DataRect: TRect;
function DataRowCount: Integer;
function ExecuteAction(Action: TBasicAction): Boolean; override;
function GetCompleteKeyPress: String;
function GetFooterValue(Row: Integer; Column: TColumnEh): String; virtual;
function UpdateAction(Action: TBasicAction): Boolean; override;
function ValidFieldIndex(FieldIndex: Integer): Boolean;
procedure DefaultDrawColumnCell(const Rect: TRect; DataCol: Integer;
Column: TColumnEh; State: TGridDrawState);
procedure DefaultApplySorting; virtual;
procedure DefaultDrawDataCell(const Rect: TRect; Field: TField; State: TGridDrawState); { obsolete }
procedure DefaultDrawFooterCell(const Rect: TRect; DataCol, Row: Integer;
Column: TColumnEh; State: TGrid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -