📄 cmoneydbgrids.~pas
字号:
procedure CMDeferLayout(var Message); message CM_DEFERLAYOUT;
procedure CMDesignHitTest(var Msg: TCMDesignHitTest); message CM_DESIGNHITTEST;
procedure WMSetCursor(var Msg: TWMSetCursor); message WM_SETCURSOR;
procedure WMSize(var Message: TWMSize); message WM_SIZE;
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
procedure WMIMEStartComp(var Message: TMessage); message WM_IME_STARTCOMPOSITION;
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SetFOCUS;
procedure WMKillFocus(var Message: TMessage); message WM_KILLFOCUS;
procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;
procedure SetHorzScrollBar(const Value: TCMoneyDBGridScrollBar);
procedure SetVertScrollBar(const Value: TCMoneyDBGridScrollBar);
procedure SetOptionsEx(const Value: TCMoneyDBGridOptions);
procedure WMTimer(var Message: TMessage); message WM_TIMER;
procedure ClearSelection;
procedure DoSelection(Select: Boolean; Direction: Integer; MaxDirection, RowOnly: Boolean);
function UpDownBitmap: TBitmap;
procedure CMHintShow(var Message: TCMHintShow); message CM_HINTSHOW; //属性ShowHint为True时触发
procedure CMHintsShowPause(var Message: TCMHintShowPause); message CM_HINTSHOWPAUSE;
procedure CMParentColorChanged(var Message: TMessage); message CM_PARENTCOLORCHANGED;
procedure SetTitleImages(const Value: TCustomImageList);
function GetCol: Longint;
procedure SetCol(Value: Longint);
procedure SetFooterFont(Value: TFont);
procedure FooterFontChanged(Sender: TObject);
procedure SetFooterColor(Value: TColor);
procedure SetShowCalcRow(Value: Boolean);
procedure SetRedWord(Value: Boolean);
procedure SetRowSingleColor(Value: TColor);
procedure SetRowDoubleColor(Value: TColor);
procedure SetCheckGlyphs(Value: TCSCheckGlyphs);
procedure SetIndicatorBarWidth(Value: Integer);
//Raymond 2002-07-22
procedure SetRowHighlight(Value: Boolean);
protected
FUpdateFields: Boolean;
FAcquireFocus: Boolean;
FUpdatingEditor: Boolean;
FCMoneyDBGridState: TCMoneyDBGridState;
FTitleHeight: Integer;
FTitleLines: Integer;
FTitleHeightFull: Integer;
FMarginText: Boolean;
FVTitleMargin: Integer;
FHTitleMargin: Integer;
FMultiTitle: Boolean;
FAutoFitColWidths: Boolean;
FMinAutoFitWidth: Integer;
FInitColWidth: TList;
FFooterRowCount: Integer;
FOnDrawFooterCell: TCSDrawFooterCellEvent;
FHeadTree: TCSHeadTreeNode;
FLeafFieldArr: PTLeafCol;
FNewRowHeight: Integer;
FRowLines: Integer;
FDefaultRowChanged: Boolean;
FAllowWordWrap: Boolean; //如果(RowHeight + 3 > TextHeight)则为True(可以折行显示)
FSortMarkerImages: TImageList;
FPressedCol: Longint;
FPressed: Boolean;
FTracking: Boolean;
FSwapButtons: Boolean;
FOnCheckButton: TCSCheckTitleBtnEvent;
FOnGetBtnParams: TCSGetBtnParamsEvent;
FOnTitleBtnClick: TCSTitleBtnClickEvent;
FInplaceEditorButtonWidth: Integer;
FFrozenColCount: Integer;
FVisibleColumns: TCSColumnsList;
FPressedCell: TGridCoord;
FIndicatorPressed: Boolean;
FDownMousePos: TPoint;
FMoveMousePos: TPoint;
FMouseShift: TShiftState;
FTimerActive: Boolean;
FTimerInterval: Integer;
FPresedRecord: TBookMarkStr;
FSelectionAnchorSelected: Boolean;
FAntiSelection: Boolean;
FDataTracking: Boolean;
FSortMarkedColumns: TCSColumnsList;
FLockPaint: Boolean;
FLockedBookmark: TBookmarkStr;
FLookedOffset: Integer;
FLockEditShow: Boolean;
function BeginColumnDrag(var Origin, Destination: Integer;
const MousePt: TPoint): Boolean; override; //是否能够拖动网格列
function CanEditShow: Boolean; override; //是否显示网格列的编辑器
function CanEditAcceptKey(Key: Char): Boolean; override; //按键是否能够输入
function CanEditModify: Boolean; override; //是否能够修改数值
function CreateEditor: TInplaceEdit; override; //构造默认的编辑器
function SelectCell(ACol, ARow: Longint): Boolean; override;
procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
procedure UpdateText;
procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
procedure UpdateEdit; reintroduce;
procedure ShowEditor;
procedure InvalidateEditor;
procedure WMChar(var Message: TWMChar); message WM_CHAR; //触发CalcFieldInput事件
procedure ShowEditorChar(Ch: Char); //显示并传送数据
procedure DrawPromptText(ACanvas: TCanvas; ARect: TRect; AColumn: TCSColumn); //画提示文字
procedure Paint; override;
procedure SetFooterRowCount(Value: Integer);
procedure ClearPainted(ANode: TCSHeadTreeNode);
function SetChildTreeHeight(ANode: TCSHeadTreeNode): Integer;
procedure SetTitleHeight(Value: Integer);
procedure SetTitleLines(Value: Integer);
procedure SetMarginText(IsMargin: Boolean);
procedure SetVTitleMargin(Value: Integer);
procedure SetHTitleMargin(Value: Integer);
procedure SetMultiTitle(Value: Boolean);
procedure SetAutoFitColWidths(Value: Boolean);
procedure SetMinAutoFitWidth(Value: Integer);
function GetColWidths(Index: Longint): Integer;
procedure SetColWidths(Index: Longint; Value: Integer);
procedure SetRowHeight(Value: Integer);
procedure SetRowLines(Value: Integer);
procedure RowHeightsChanged; override;
function StdDefaultRowHeight: Integer;
procedure StopTracking;
procedure TrackButton(X, Y: Integer);
procedure WMCancelMode(var Message: TMessage); message WM_CANCELMODE;
procedure CMCancelMode(var Message: TCMCancelMode); message CM_CANCELMODE;
procedure DoTitleClick(ACol: Longint; AColumn: TCSColumn); dynamic;
procedure CheckTitleButton(ACol: Longint; var Enabled: Boolean); dynamic;
procedure GetCellParams(Column: TCSColumn; AFont: TFont; var Background: TColor;
var ReadOnly: Boolean; State: TGridDrawState); dynamic;
procedure SetFrozenColCount(Value: Integer);
procedure GetFooterParams(DataCol, Row: Longint; Column: TCSColumn; AFont: TFont;
var Background: TColor; var Alignment: TAlignment; State: TGridDrawState; var Text: string); dynamic;
function CanEditModifyText: Boolean;
function VisibleDataRowCount: Integer;
procedure TimerScroll;
procedure StopTimer;
procedure ResetTimer(Interval: Integer);
procedure DoSortMarkingChanged; dynamic;
function RawToDataColumn(ACol: Integer): Integer;
function DataToRawColumn(ACol: Integer): Integer;
function AcquireLayoutLock: Boolean;
procedure BeginLayout;
procedure BeginUpdate;
procedure CancelLayout;
procedure CellClick(Column: TCSColumn); dynamic;
procedure ColumnMoved(FromIndex, ToIndex: Longint); override;
procedure ColEnter; dynamic;
procedure ColExit; dynamic;
procedure ColWidthsChanged; override;
function CreateColumns: TCMoneyDBGridColumns; dynamic;
procedure CreateWnd; override;
procedure DeferLayout;
procedure WndProc(var Message: TMessage); override;
procedure DefineFieldMap; virtual;
procedure DefineProperties(Filer: TFiler); override;
procedure TopLeftChanged; override;
procedure DrawDataCell(const Rect: TRect; Field: TField; State: TGridDrawState); dynamic;
procedure DrawColumnCell(const Rect: TRect; DataCol: Integer;
Column: TCSColumn; State: TGridDrawState); dynamic;
procedure EditButtonClick; dynamic;
procedure ShowPopupEditor(Column: TCSColumn; X: Integer = Low(Integer);
Y: Integer = Low(Integer)); dynamic;
procedure EndLayout;
procedure EndUpdate;
function GetEditLimit: Integer; override; //编辑器最多能够输入字符总数
function GetEditMask(ACol, ARow: Longint): string; override;
function GetEditText(ACol, ARow: Longint): string; override;
function HighlightCell(DataCol, DataRow: Integer; const Value: string;
var AState: TGridDrawState): Boolean; virtual;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); 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;
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
procedure CalcSizingState(X, Y: Integer; var State: TGridState;
var Index: Longint; var SizingPos, SizingOfs: Integer; var FixedInfo: TGridDrawInfo); override;
procedure CalcFrozenSizingState(X, Y: Integer; var State: TCMoneyDBGridState;
var Index: Longint; var SizingPos, SizingOfs: Integer);
function FrozenSizing(X, Y: Integer): Boolean;
procedure DrawSizingLine(HorzGridBoundary, VertGridBoundary: Integer);
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure Scroll(Distance: Integer); virtual;
procedure SetColumnAttributes; virtual;
procedure SetEditText(ACol, ARow: Longint; const Value: string); override;
function StoreColumns: Boolean;
procedure TimedScroll(Direction: TGridScrollDirection); override;
procedure TitleClick(Column: TCSColumn); dynamic;
//Raymond 2002-06-06 将该属性描述移动到Public中
//property Columns: TCMoneyDBGridColumns read FColumns write SetColumns;
//property DataSource: TDataSource read GetDataSource write SetDataSource;
property DefaultDrawing: Boolean read FDefaultDrawing write FDefaultDrawing default True;
property DataLink: TCSGridDataLink read FDataLink;
property LayoutLock: Byte read FLayoutLock;
property Options: TDBGridOptions read FOptions write SetOptions
default [dgEditing, dgTitles, dgColumnResize, dgColLines,
dgRowLines, dgTabs, dgConfirmDelete, dgCancelOnExit];
property ParentColor default False;
property ReadOnly: Boolean read FReadOnly write FReadOnly default False;
property SelectedRows: TCSBookmarkList read FBookmarks;
property TitleFont: TFont read FTitleFont write SetTitleFont;
property UpdateLock: Byte read FUpdateLock;
property OnColEnter: TNotifyEvent read FOnColEnter write FOnColEnter;
property OnColExit: TNotifyEvent read FOnColExit write FOnColExit;
property OnDrawDataCell: TDrawDataCellEvent read FOnDrawDataCell write FOnDrawDataCell;
property OnDrawColumnCell: TCSDrawColumnCellEvent read FOnDrawColumnCell write FOnDrawColumnCell;
property OnEditButtonClick: TCSEditButtonClickEvent read FOnEditButtonClick write FOnEditButtonClick;
property OnColumnMoved: TMovedEvent read FOnColumnMoved write FOnColumnMoved;
property OnCellClick: TCMoneyDBGridClickEvent read FOnCellClick write FOnCellClick;
property OnTitleClick: TCMoneyDBGridClickEvent read FOnTitleClick write FOnTitleClick;
procedure SaveColumnsLayoutProducer(ARegIni: TObject; Section: string; DeleteSection: Boolean);
procedure RestoreColumnsLayoutProducer(ARegIni: TObject; Section: string; RestoreParams: TCSColumnRestoreParams);
procedure SaveGridLayoutProducer(ARegIni: TObject; Section: string; DeleteSection: Boolean);
procedure RestoreGridLayoutProducer(ARegIni: TObject; Section: string; RestoreParams: TCMoneyDBGridRestoreParams);
function AllowedOperationUpdate: Boolean;
property FooterFont: TFont read FFooterFont write SetFooterFont;
property FooterColor: TColor read FFooterColor write SetFooterColor default $00EFEFE7;
property FooterRowCount: Integer read FFooterRowCount write SetFooterRowCount default 1;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure DefaultDrawColumnCell(const Rect: TRect; DataCol: Integer;
Column: TCSColumn; State: TGridDrawState); //没有使用到的代码,供开发者使用
procedure DefaultDrawFooterCell(const Rect: TRect; DataCol, Row: Integer;
Column: TCSColumn; State: TGridDrawState); //没有使用到的代码,供开发者使用
function ValidFieldIndex(FieldIndex: Integer): Boolean;
property HeadTree: TCSHeadTreeNode read FHeadTree;
property LeafFieldArr: PTLeafCol read FLeafFieldArr;
property EditorMode;
property FieldCount: Integer read GetFieldCount;
property Fields[FieldIndex: Integer]: TField read GetFields;
property SelectedField: TField read GetSelectedField write SetSelectedField;
property SelectedIndex: Integer read GetSelectedIndex write SetSelectedIndex;
//Raymond 2002-07-08 完整的是否获得焦点的函数
function InFocus: Boolean;
function ExecuteAction(Action: TBasicAction): Boolean; override;
function UpdateAction(Action: TBasicAction): Boolean; override;
procedure DefaultHandler(var Msg); override;
function DataRect: TRect;
function DataRowCount: Integer;
procedure InvalidateFooter;
procedure SaveColumnsLayout(ARegIni: TRegIniFile);
procedure RestoreColumnsLayout(ARegIni: TRegIniFile; RestoreParams: TCSColumnRestoreParams);
procedure SaveColumnsLayoutIni(IniFileName: string; Section: string; DeleteSection: Boolean);
procedure RestoreColumnsLayoutIni(IniFileName: string; Section: string; RestoreParams: TCSColumnRestoreParams);
procedure SaveGridLayout(ARegIni: TRegIniFile);
procedure RestoreGridLayout(ARegIni: TRegIniFile; RestoreParams: TCMoneyDBGridRestoreParams);
procedure SaveGridLayoutIni(IniFileName: string; Section: string; DeleteSection: Boolean);
procedure RestoreGridLayoutIni(IniFileName: string; Section: string; RestoreParams: TCMoneyDBGridRestoreParams);
function CellRect(ACol, ARow: Longint): TRect;
procedure SetSortMarkedColumns;
procedure SaveBookmark;
procedure RestoreBookmark;
property Canvas;
property Col read GetCol write SetCol;
property FixedColor default $009CBECE;
property InplaceEditor;
property LeftCol;
property Row;
property VisibleRowCount;
property VisibleColCount;
property IndicatorOffset: Byte read FIndicatorOffset;
property TitleOffset: Byte read FTitleOffset;
//property FooterRowCount: Integer read FFooterRowCount write SetFooterRowCount default 0;
property FrozenColCount: Integer read FFrozenColCount write SetFrozenColCount default 0;
property OnDrawFooterCell: TCSDrawFooterCellEvent read FOnDrawFooterCell write FOnDrawFooterCell;
property Columns: TCMoneyDBGridColumns read FColumns write SetColumns;
property DataSource: TDataSource read GetDataSource write SetDataSource;
property TitleHeight: Integer read FTitleHeight write SetTitleHeight default 0;
property TitleLines: Integer read FTitleLines write SetTitleLines default 0;
property VTitleMargin: Integer read FVTitleMargin write SetVTitleMargin default 10;
property MultiTitle: Boolean read FMultiTitle write SetMultiTitle default False;
property AutoFitColWidths: Boolean read FAutoFitColWidths write SetAutoFitColWidths default False;
property MinAutoFitWidth: Integer read FMinAutoFitWidth write SetMinAutoFitWidth default 0;
property RowHeight: Integer read FNewRowHeight write SetRowHeight default 0;
property RowLines: Integer read FRowLines write SetRowLines default 0;
property OnCheckButton: TCSCheckTitleBtnEvent read FOnCheckButton write FOnCheckButton;
property OnGetBtnParams: TCSGetBtnParamsEvent read FOnGetBtnParams write FOnGetBtnParams;
property OnTitleBtnClick: TCSTitleBtnClickEvent read FOnTitleBtnClick write FOnTitleBtnClick;
property OnGetCellParams: TCSGetCellParamsEvent read FOnGetCellParams write FOnGetCellParams;
property OnGetFooterParams: TCSGetFooterParamsEvent read FOnGetFooterParams write FOnGetFooterParams;
property VisibleColumns: TCSColumnsList read FVisibleColumns write FVisibleColumns;
property HorzScrollBar: TCMoneyDBGridScrollBar read FHorzScrollBar write SetHorzScrollBar;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -