📄 gridseh.hpp
字号:
typedef Set<GridsEh__5, sdLeft, sdDown> TGridScrollDirection;
class PASCALIMPLEMENTATION TCustomGridEh : public Controls::TCustomControl
{
typedef Controls::TCustomControl inherited;
private:
TGridCoord FAnchor;
Forms::TFormBorderStyle FBorderStyle;
bool FCanEditModify;
int FColCount;
int FColOffset;
DynamicArray<int > FColWidths;
int FContraColCount;
int FContraRowCount;
TGridCoord FCurrent;
int FDefaultColWidth;
bool FDefaultDrawing;
int FDefaultRowHeight;
bool FEditorMode;
Graphics::TColor FFixedColor;
int FFixedCols;
int FFixedRows;
bool FFlat;
int FFrozenColCount;
int FFrozenRowCount;
TGridLineColorsEh* FGridLineColors;
int FGridLineWidth;
#pragma pack(push,1)
Types::TPoint FHitTest;
#pragma pack(pop)
int FInplaceCol;
int FInplaceRow;
TInplaceEdit* FInplaceEdit;
int FMoveIndex;
int FMovePos;
TGridEhCellMouseEvent FOnCellMouseClick;
TGridOptions FOptions;
int FRowCount;
DynamicArray<int > FRowHeights;
Stdctrls::TScrollStyle FScrollBars;
int FSizingIndex;
int FSizingPos;
int FSizingOfs;
DynamicArray<int > FTabStops;
TGridCoord FTopLeft;
TGridCoord __fastcall CalcCoordFromPoint(int X, int Y, const TGridDrawInfoEh &DrawInfo);
void __fastcall CalcDrawInfoXY(TGridDrawInfoEh &DrawInfo, int UseWidth, int UseHeight);
TGridCoord __fastcall CalcMaxTopLeft(const TGridCoord &Coord, const TGridDrawInfoEh &DrawInfo);
void __fastcall CancelMode(void);
void __fastcall ChangeSize(int NewColCount, int NewRowCount);
void __fastcall ClampInView(const TGridCoord &Coord);
void __fastcall DrawSizingLine(const TGridDrawInfoEh &DrawInfo);
void __fastcall DrawMove(void);
void __fastcall GridRectToScreenRect(const Types::TRect &GridRect, Types::TRect &ScreenRect, bool IncludeLine);
void __fastcall Initialize(void);
void __fastcall InvalidateRect(const Types::TRect &ARect);
void __fastcall ModifyScrollBar(unsigned ScrollBar, unsigned ScrollCode, unsigned Pos, bool UseRightToLeft);
void __fastcall MoveAdjust(int &CellPos, int FromIndex, int ToIndex);
void __fastcall MoveAnchor(const TGridCoord &NewAnchor);
void __fastcall MoveAndScroll(int Mouse, int CellHit, TGridDrawInfoEh &DrawInfo, TGridAxisDrawInfoEh &Axis, int Scrollbar, const Types::TPoint &MousePt);
void __fastcall MoveCurrent(int ACol, int ARow, bool MoveAnchor, bool Show);
void __fastcall MoveTopLeft(int ALeft, int ATop);
void __fastcall ResizeCol(int Index, int OldSize, int NewSize);
void __fastcall ResizeRow(int Index, int OldSize, int NewSize);
void __fastcall SelectionMoved(const Types::TRect &OldSel);
void __fastcall ScrollDataInfo(int DX, int DY, TGridDrawInfoEh &DrawInfo);
void __fastcall TopLeftMoved(const TGridCoord &OldTopLeft);
void __fastcall UpdateScrollPos(void);
void __fastcall UpdateScrollRange(void);
int __fastcall GetColWidths(int Index);
int __fastcall GetRowHeights(int Index);
Types::TRect __fastcall GetSelection();
bool __fastcall GetTabStops(int Index);
int __fastcall GetVisibleColCount(void);
int __fastcall GetVisibleRowCount(void);
bool __fastcall IsActiveControl(void);
void __fastcall ReadColWidths(Classes::TReader* Reader);
void __fastcall ReadRowHeights(Classes::TReader* Reader);
void __fastcall SetBorderStyle(Forms::TBorderStyle Value);
void __fastcall SetCol(int Value);
void __fastcall SetColCount(int Value);
void __fastcall SetColWidths(int Index, int Value);
void __fastcall SetDefaultColWidth(int Value);
void __fastcall SetDefaultRowHeight(int Value);
void __fastcall SetEditorMode(bool Value);
void __fastcall SetFixedColor(Graphics::TColor Value);
void __fastcall SetFixedCols(int Value);
void __fastcall SetFixedRows(int Value);
void __fastcall SetGridLineWidth(int Value);
void __fastcall SetLeftCol(int Value);
void __fastcall SetOptions(TGridOptions Value);
void __fastcall SetRow(int Value);
void __fastcall SetRowCount(int Value);
void __fastcall SetRowHeights(int Index, int Value);
void __fastcall SetScrollBars(Stdctrls::TScrollStyle Value);
void __fastcall SetSelection(const Types::TRect &Value);
void __fastcall SetTabStops(int Index, bool Value);
void __fastcall SetTopRow(int Value);
void __fastcall UpdateEdit(void);
void __fastcall UpdateText(void);
void __fastcall WriteColWidths(Classes::TWriter* Writer);
void __fastcall WriteRowHeights(Classes::TWriter* Writer);
MESSAGE void __fastcall CMCancelMode(Controls::TCMCancelMode &Msg);
HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
HIDESBASE MESSAGE void __fastcall CMCtl3DChanged(Messages::TMessage &Message);
HIDESBASE MESSAGE void __fastcall CMDesignHitTest(Messages::TWMMouse &Msg);
MESSAGE void __fastcall CMWantSpecialKey(Messages::TWMKey &Msg);
HIDESBASE MESSAGE void __fastcall CMShowingChanged(Messages::TMessage &Message);
HIDESBASE MESSAGE void __fastcall WMChar(Messages::TWMKey &Msg);
HIDESBASE MESSAGE void __fastcall WMCancelMode(Messages::TWMNoParams &Msg);
HIDESBASE MESSAGE void __fastcall WMCommand(Messages::TWMCommand &Message);
MESSAGE void __fastcall WMGetDlgCode(Messages::TWMNoParams &Msg);
HIDESBASE MESSAGE void __fastcall WMHScroll(Messages::TWMScroll &Msg);
HIDESBASE MESSAGE void __fastcall WMKillFocus(Messages::TWMKillFocus &Msg);
HIDESBASE MESSAGE void __fastcall WMLButtonDown(Messages::TWMMouse &Message);
HIDESBASE MESSAGE void __fastcall WMLButtonUp(Messages::TWMMouse &Message);
HIDESBASE MESSAGE void __fastcall WMNCHitTest(Messages::TWMNCHitTest &Msg);
HIDESBASE MESSAGE void __fastcall WMSetCursor(Messages::TWMSetCursor &Msg);
HIDESBASE MESSAGE void __fastcall WMSetFocus(Messages::TWMSetFocus &Msg);
HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Msg);
MESSAGE void __fastcall WMTimer(Messages::TWMTimer &Msg);
HIDESBASE MESSAGE void __fastcall WMVScroll(Messages::TWMScroll &Msg);
void __fastcall SetContraColCount(const int Value);
void __fastcall SetContraRowCount(const int Value);
int __fastcall GetFullColCount(void);
int __fastcall GetFullRowCount(void);
void __fastcall SetFlat(const bool Value);
void __fastcall SetFrozenColCount(const int Value);
void __fastcall SetFrozenRowCount(const int Value);
TRCRRec __fastcall SetDataDrawOriginClipRegion(int StartX, int StartY, int StopX, int StopY);
void __fastcall RestoreDataDrawOriginClipRegion(TRCRRec &RCR);
protected:
TGridOptions DesignOptionsBoost;
int FColDataOffset;
Graphics::TColor FFixedLineColor;
TGridState FGridState;
int FLockPaint;
TGridCoord FMouseDownCell;
bool FSaveCellExtents;
bool VirtualView;
virtual TInplaceEdit* __fastcall CreateEditor(void);
int __fastcall ResizeLine(const TGridAxisDrawInfoEh &AxisInfo);
void __fastcall CalcDrawInfo(TGridDrawInfoEh &DrawInfo);
void __fastcall CalcContraInfo(TGridDrawInfoEh &DrawInfo, int UseWidth, int UseHeight);
void __fastcall CalcFixedInfo(TGridDrawInfoEh &DrawInfo);
virtual void __fastcall CalcSizingState(int X, int Y, TGridState &State, int &Index, int &SizingPos, int &SizingOfs, TGridDrawInfoEh &FixedInfo);
void __fastcall ChangeGridOrientation(bool RightToLeftOrientation);
virtual void __fastcall CellMouseClick(const TGridCoord &Cell, Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
DYNAMIC void __fastcall KeyDown(Word &Key, Classes::TShiftState Shift);
DYNAMIC void __fastcall KeyPress(char &Key);
void __fastcall LockPaint(void);
DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
HIDESBASEDYNAMIC void __fastcall AdjustSize(int Index, int Amount, bool Rows);
Types::TRect __fastcall BoxRect(int ALeft, int ATop, int ARight, int ABottom);
DYNAMIC void __fastcall DoExit(void);
Types::TRect __fastcall CellRect(int ACol, int ARow);
DYNAMIC bool __fastcall CanEditAcceptKey(char Key);
DYNAMIC bool __fastcall CanGridAcceptKey(Word Key, Classes::TShiftState Shift);
DYNAMIC bool __fastcall CanEditModify(void);
virtual bool __fastcall CanEditShow(void);
virtual bool __fastcall CheckCellMouseClick(Messages::TWMMouse &Message);
DYNAMIC bool __fastcall DoMouseWheelDown(Classes::TShiftState Shift, const Types::TPoint &MousePos);
DYNAMIC bool __fastcall DoMouseWheelUp(Classes::TShiftState Shift, const Types::TPoint &MousePos);
bool __fastcall PaintLocked(void);
void __fastcall FocusCell(int ACol, int ARow, bool MoveAnchor);
virtual void __fastcall FlatChanged(void);
DYNAMIC AnsiString __fastcall GetEditText(int ACol, int ARow);
DYNAMIC void __fastcall SetEditText(int ACol, int ARow, const AnsiString Value);
DYNAMIC int __fastcall GetEditLimit(void);
DYNAMIC AnsiString __fastcall GetEditMask(int ACol, int ARow);
DYNAMIC TEditStyle __fastcall GetEditStyle(int ACol, int ARow);
int __fastcall GetGridWidth(void);
int __fastcall GetGridHeight(void);
void __fastcall HideEdit(void);
void __fastcall HideEditor(void);
void __fastcall ShowEditor(void);
void __fastcall ShowEditorChar(char Ch);
void __fastcall InvalidateEditor(void);
void __fastcall InvalidateGrid(void);
void __fastcall MoveColumn(int FromIndex, int ToIndex);
DYNAMIC void __fastcall ColumnMoved(int FromIndex, int ToIndex);
void __fastcall MoveRow(int FromIndex, int ToIndex);
DYNAMIC void __fastcall RowMoved(int FromIndex, int ToIndex);
virtual void __fastcall DrawCell(int ACol, int ARow, const Types::TRect &ARect, TGridDrawState AState) = 0 ;
virtual void __fastcall DefineProperties(Classes::TFiler* Filer);
void __fastcall MoveColRow(int ACol, int ARow, bool MoveAnchor, bool Show);
virtual bool __fastcall SelectCell(int ACol, int ARow);
DYNAMIC void __fastcall SizeChanged(int OldColCount, int OldRowCount);
bool __fastcall Sizing(int X, int Y);
void __fastcall ScrollData(int DX, int DY);
void __fastcall InvalidateCell(int ACol, int ARow);
void __fastcall InvalidateCol(int ACol);
void __fastcall InvalidateRow(int ARow);
DYNAMIC void __fastcall TopLeftChanged(void);
DYNAMIC void __fastcall TimedScroll(TGridScrollDirection Direction);
virtual void __fastcall Paint(void);
void __fastcall DrawLines(const TGridDrawInfoEh &DrawInfo, bool DoHorz, bool DoVert, int Col, int Row, int const * CellBounds, const int CellBounds_Size, Graphics::TColor OnColor, Graphics::TColor OffColor, Graphics::TCanvas* Canvas, const TDrawLinesInfoEh &DrawLinesInfo);
void __fastcall DrawContraInfo(const TGridDrawInfoEh &DrawInfo);
void __fastcall DrawPolyPolyline(TPointArray PointsList, TDWORDArray StrokeList, int VCount);
void __fastcall DrawPolyline(Types::TPoint * Points, const int Points_Size);
DYNAMIC void __fastcall ColWidthsChanged(void);
DYNAMIC void __fastcall RowHeightsChanged(void);
virtual void __fastcall DeleteColumn(int ACol);
virtual void __fastcall DeleteRow(int ARow);
void __fastcall UpdateDesigner(void);
void __fastcall UnlockPaint(void);
virtual void __fastcall UpdateFixedLineColor(void);
void __fastcall DrawEdgeEh(Graphics::TCanvas* ACanvas, const Types::TRect &qrc, bool IsDown, bool IsSelected, bool NeedLeft, bool NeedRight);
virtual TGridLineColorsEh* __fastcall CreateGridLineColors(void);
virtual void __fastcall SetContraSize(int NewContraColCount, int NewContraRowCount);
void __fastcall SmoothOffsetData(int DX, int DY);
DYNAMIC bool __fastcall BeginColumnDrag(int &Origin, int &Destination, const Types::TPoint &MousePt);
DYNAMIC bool __fastcall BeginRowDrag(int &Origin, int &Destination, const Types::TPoint &MousePt);
DYNAMIC bool __fastcall CheckColumnDrag(int &Origin, int &Destination, const Types::TPoint &MousePt);
DYNAMIC bool __fastcall CheckRowDrag(int &Origin, int &Destination, const Types::TPoint &MousePt);
DYNAMIC bool __fastcall EndColumnDrag(int &Origin, int &Destination, const Types::TPoint &MousePt);
DYNAMIC bool __fastcall EndRowDrag(int &Origin, int &Destination, const Types::TPoint &MousePt);
__property Forms::TBorderStyle BorderStyle = {read=FBorderStyle, write=SetBorderStyle, default=1};
__property int Col = {read=FCurrent.X, write=SetCol, nodefault};
__property Color = {default=-16777211};
__property int ColCount = {read=FColCount, write=SetColCount, default=5};
__property int ColWidths[int Index] = {read=GetColWidths, write=SetColWidths};
__property int DefaultColWidth = {read=FDefaultColWidth, write=SetDefaultColWidth, default=64};
__property bool DefaultDrawing = {read=FDefaultDrawing, write=FDefaultDrawing, default=1};
__property int DefaultRowHeight = {read=FDefaultRowHeight, write=SetDefaultRowHeight, default=24};
__property bool EditorMode = {read=FEditorMode, write=SetEditorMode, nodefault};
__property Graphics::TColor FixedColor = {read=FFixedColor, write=SetFixedColor, default=-16777201};
__property int FixedCols = {read=FFixedCols, write=SetFixedCols, default=1};
__property int FixedRows = {read=FFixedRows, write=SetFixedRows, default=1};
__property int GridHeight = {read=GetGridHeight, nodefault};
__property int GridLineWidth = {read=FGridLineWidth, write=SetGridLineWidth, default=1};
__property int GridWidth = {read=GetGridWidth, nodefault};
__property Types::TPoint HitTest = {read=FHitTest};
__property TInplaceEdit* InplaceEditor = {read=FInplaceEdit};
__property int LeftCol = {read=FTopLeft.X, write=SetLeftCol, nodefault};
__property TGridOptions Options = {read=FOptions, write=SetOptions, default=31};
__property ParentColor = {default=0};
__property int Row = {read=FCurrent.Y, write=SetRow, nodefault};
__property int RowCount = {read=FRowCount, write=SetRowCount, default=5};
__property int RowHeights[int Index] = {read=GetRowHeights, write=SetRowHeights};
__property Stdctrls::TScrollStyle ScrollBars = {read=FScrollBars, write=SetScrollBars, default=3};
__property Types::TRect Selection = {read=GetSelection, write=SetSelection};
__property bool TabStops[int Index] = {read=GetTabStops, write=SetTabStops};
__property int TopRow = {read=FTopLeft.Y, write=SetTopRow, nodefault};
__property int VisibleColCount = {read=GetVisibleColCount, nodefault};
__property int VisibleRowCount = {read=GetVisibleRowCount, nodefault};
__property int ContraRowCount = {read=FContraRowCount, write=SetContraRowCount, default=0};
__property int ContraColCount = {read=FContraColCount, write=SetContraColCount, default=0};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -