⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbgrideh.pas

📁 很COOL的GRID表格控件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    function  GetRowHeight: Integer;
    procedure SetRowHeight(Value: Integer);

    function  GetRowLines: 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: TColumnEh); dynamic;
    procedure CheckTitleButton(ACol: Longint; var Enabled: Boolean); dynamic;
    procedure GetCellParams(Column: TColumnEh; AFont: TFont; var Background: TColor;
      State: TGridDrawState ); dynamic;
    procedure SetFrozenCols(Value: Integer);
    procedure EnsureFooterValueType(AFooterValueType:TFooterValueType; AFieldName:String);
    procedure SumListChanged(Sender: TObject);
    procedure SumListRecalcAll(Sender: TObject);
    procedure GetFooterParams(DataCol, Row: Longint; Column: TColumnEh; 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;
    function  CanEditAcceptKey(Key: Char): Boolean; override;
    function  CanEditModify: Boolean; override;
    function  CanEditShow: Boolean; override;
    procedure CellClick(Column: TColumnEh); dynamic;
    procedure ColumnMoved(FromIndex, ToIndex: Longint); override;
    procedure ColEnter; dynamic;
    procedure ColExit; dynamic;
    procedure ColWidthsChanged; override;
    function  CreateColumns: TDBGridColumnsEh; dynamic;
    function  CreateEditor: TInplaceEdit; override;
    procedure CreateWnd; override;
    procedure DeferLayout;
    procedure WndProc(var Message: TMessage); override;
    procedure DefineFieldMap; virtual;
    procedure DefineProperties(Filer: TFiler); override;
    procedure TopLeftChanged; override;
    //ddd
    procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
    //\\\
    procedure DrawDataCell(const Rect: TRect; Field: TField;
      State: TGridDrawState); dynamic; { obsolete }
    procedure DrawColumnCell(const Rect: TRect; DataCol: Integer;
      Column: TColumnEh; State: TGridDrawState); dynamic;
    procedure EditButtonClick; dynamic;
    procedure EndLayout;
    procedure EndUpdate;
    function  GetColField(DataCol: Integer): TField;
    function  GetEditLimit: Integer; override;
    function  GetEditMask(ACol, ARow: Longint): string; override;
    function  GetEditText(ACol, ARow: Longint): string; override;
    function  GetFieldValue(ACol: Integer): string;
    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 ChangeScale(M, D: Integer); override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
    //ddd
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    //\\\
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
{$IFDEF EH_LIB_4}
    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;
{$ENDIF}
    procedure CalcFrozenSizingState(X, Y: Integer; var State: TDBGridEhState;
      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: TColumnEh); dynamic;

    procedure CalcDrawInfoEh(var DrawInfo: TGridDrawInfoEh);
    procedure CalcFixedInfoEh(var DrawInfo: TGridDrawInfoEh);

    property DefaultDrawing: Boolean read FDefaultDrawing write FDefaultDrawing default True;
    property DataLink: TGridDataLinkEh read FDataLink;
//ddd    property IndicatorOffset: Byte read FIndicatorOffset;
    property LayoutLock: Byte read FLayoutLock;
    property ParentColor default False;
    property ReadOnly: Boolean read FReadOnly write FReadOnly default False;
    property SelectedRows: TBookmarkListEh read FBookmarks;
    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; { obsolete }
    property OnDrawColumnCell: TDrawColumnEhCellEvent read FOnDrawColumnCell
      write FOnDrawColumnCell;
    property OnEditButtonClick: TNotifyEvent read FOnEditButtonClick
      write FOnEditButtonClick;
    property OnColumnMoved: TMovedEvent read FOnColumnMoved write FOnColumnMoved;
    property OnCellClick: TDBGridEhClickEvent read FOnCellClick write FOnCellClick;
    property OnTitleClick: TDBGridEhClickEvent read FOnTitleClick write FOnTitleClick;
    //ddd
    procedure SaveColumnsLayoutProducer(ARegIni: TObject; Section: String; DeleteSection: Boolean);
    procedure RestoreColumnsLayoutProducer(ARegIni: TObject; Section: String; RestoreParams:TColumnEhRestoreParams);
    procedure SaveGridLayoutProducer(ARegIni: TObject; Section: String; DeleteSection: Boolean);
    procedure RestoreGridLayoutProducer(ARegIni: TObject; Section: String; RestoreParams:TDBGridEhRestoreParams);
    function AllowedOperationUpdate:Boolean;
    procedure CreateParams(var Params: TCreateParams); override;
//    procedure AdjustClientRect(var Rect: TRect); override;
    property FooterFont: TFont read FFooterFont write SetFooterFont;
    property FooterColor: TColor read FFooterColor write SetFooterColor;

    //\\\
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure DefaultDrawDataCell(const Rect: TRect; Field: TField;
      State: TGridDrawState); { obsolete }
    procedure DefaultDrawColumnCell(const Rect: TRect; DataCol: Integer;
      Column: TColumnEh; State: TGridDrawState);
    function ValidFieldIndex(FieldIndex: Integer): Boolean;
    property HeadTree: THeadTreeNode 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;

    //ddd

{$IFDEF EH_LIB_4} {Borland Delphi 4.0 or C++ Builder 4.0}
    function ExecuteAction(Action: TBasicAction): Boolean; override;
    function UpdateAction(Action: TBasicAction): Boolean; override;
{$ENDIF}

    function CheckCopyAction:Boolean;
    function CheckPasteAction:Boolean;
    function CheckCutAction:Boolean;
    function CheckSelectAllAction:Boolean;
    function CheckDeleteAction:Boolean;

    procedure DefaultHandler(var Msg); override;
    function  DataRect:TRect;
    function  DataRowCount:Integer;
    procedure InvalidateFooter;

{$IFDEF EH_LIB_4} {Borland Delphi 4.0 or C++ Builder 4.0}
    procedure SaveColumnsLayout(ARegIni: TRegIniFile); overload;
    procedure SaveColumnsLayout(ACustIni: TCustomIniFile; Section:String); overload;

    procedure RestoreColumnsLayout(ARegIni: TRegIniFile; RestoreParams:TColumnEhRestoreParams); overload;
    procedure RestoreColumnsLayout(ACustIni: TCustomIniFile; Section:String; RestoreParams:TColumnEhRestoreParams); overload;

    procedure SaveGridLayout(ARegIni: TRegIniFile); overload;
    procedure SaveGridLayout(ACustIni: TCustomIniFile; Section:String); overload;

    procedure RestoreGridLayout(ARegIni: TRegIniFile; RestoreParams:TDBGridEhRestoreParams); overload;
    procedure RestoreGridLayout(ARegIni: TCustomIniFile; Section:String; RestoreParams:TDBGridEhRestoreParams); overload;

{$ELSE}
    procedure SaveColumnsLayout(ARegIni: TRegIniFile);
    procedure RestoreColumnsLayout(ARegIni: TRegIniFile; RestoreParams:TColumnEhRestoreParams);

    procedure SaveGridLayout(ARegIni: TRegIniFile);
    procedure RestoreGridLayout(ARegIni: TRegIniFile; RestoreParams:TDBGridEhRestoreParams);
{$ENDIF}

    procedure SaveColumnsLayoutIni(IniFileName: String; Section: String; DeleteSection: Boolean);
    procedure RestoreColumnsLayoutIni(IniFileName: String; Section: String; RestoreParams:TColumnEhRestoreParams);

    procedure SaveGridLayoutIni(IniFileName: String; Section: String; DeleteSection: Boolean);
    procedure RestoreGridLayoutIni(IniFileName: String; Section: String; RestoreParams:TDBGridEhRestoreParams);

    function CellRect(ACol, ARow: Longint): TRect;
    procedure DefaultDrawFooterCell(const Rect: TRect; DataCol, Row: Integer;
      Column: TColumnEh; State: TGridDrawState);
    function GetFooterValue(Row: Integer; Column: TColumnEh): String; virtual;
    procedure SetSortMarkedColumns;
    procedure SaveBookmark;
    procedure RestoreBookmark;

    property Canvas;
    property Col read GetCol write SetCol;
    property InplaceEditor;
    property LeftCol;
    property Row;
    property VisibleRowCount;
    property VisibleColCount;
    property IndicatorOffset: Byte read FIndicatorOffset;
    property TitleOffset: Byte read FTitleOffset;

    property FooterRowCount: Integer read GetFooterRowCount write SetFooterRowCount default 0;
    property FrozenCols: Integer read FFrozenCols write SetFrozenCols default 0;
    property OnDrawFooterCell:TDrawFooterCellEvent read FOnDrawFooterCell write FOnDrawFooterCell;

    property TitleHeight: Integer read ReadTitleHeight write WriteTitleHeight default 0;
    property TitleLines: Integer read ReadTitleLines write WriteTitleLines default 0;
    property VTitleMargin: Integer read FVTitleMargin write WriteVTitleMargin default 10;
//    property HTitleMargin: Integer read FHTitleMargin write WritEhTitleMargin default 0;
    property UseMultiTitle: Boolean read FUseMultiTitle write WriteUseMultiTitle default False;
    property AutoFitColWidths: Boolean read FAutoFitColWidths write WriteAutoFitColWidths default False;
    property MinAutoFitWidth: Integer read FMinAutoFitWidth write WriteMinAutoFitWidth default 0;
    property RowHeight: Integer read GetRowHeight write SetRowHeight default 0;
    property RowLines: Integer read GetRowLines write SetRowLines default 0;
    property RowSizingAllowed:Boolean read FRowSizingAllowed write SetRowSizingAllowed default False;
    property DrawMemoText:Boolean read FDrawMemoText write SetDrawMemoText default false;
    property OnCheckButton: TCheckTitleEhBtnEvent read FOnCheckButton write FOnCheckButton;
    property OnGetBtnParams: TGetBtnEhParamsEvent read FOnGetBtnParams write FOnGetBtnParams;
    property OnTitleBtnClick: TTitleEhClickEvent read FOnTitleBtnClick write FOnTitleBtnClick;
    property OnGetCellParams: TGetCellEhParamsEvent read FOnGetCellParams write FOnGetCellParams;
    property OnGetFooterParams: TGetFooterParamsEvent read FOnGetFooterParams write FOnGetFooterParams;
    property SumList:TDBGridEhSumList read FSumList write SetSumList;
    property OnSumListRecalcAll: TNotifyEvent read FOnSumListRecalcAll write FOnSumListRecalcAll;
    property VisibleColumns: TColumnsEhList read FVisibleColumns write FVisibleColumns;
    property HorzScrollBar: TDBGridEhScrollBar read FHorzScrollBar write SetHorzScrollBar;
    property VertScrollBar: TDBGridEhScrollBar read FVertScrollBar write SetVertScrollBar;
    property OptionsEh: TDBGridEhOptions read FOptionsEh write SetOptionsEh
                                  default [dghFixed3D,dghHighlightFocus,dghClearSelection];
    property OnSortMarkingChanged: TNotifyEvent read FOnSortMarkingChanged write FOnSortMarkingChanged;
    property OnColWidthsChanged: TNotifyEvent read FOnColWidthsChanged write FOnColWidthsChanged;
    property SortMarkedColumns: TColumnsEhList read FSortMarkedColumns write FSortMarkedColumns;
    property Selection:TDBGridEhSelection read FSelection;
    property TitleImages:{$IFDEF EH_LIB_4}TCustomImageList{$ELSE}TImageList{$ENDIF} read FTitleImages write SetTitleImages;
    property TimerActive: Boolean read FTimerActive;
    property AllowedOperations: TDBGridEhAllowedOperations read FAllowedOperations write FAllowedOperations
                                   default [alopInsertEh, alopUpdateEh, alopDeleteEh, alopAppendEh];
    property Flat: Boolean read FFlat write SetFlat default False;
    property DataSource: TDataSource read GetDataSource write SetDataSource;
    property Columns: TDBGridColumnsEh read FColumns write SetColumns;
    property Options: TDBGridOptions read FOptions write SetOptions
      default [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColLines,
      dgRowLines, dgTabs, dgConfirmDelete, dgCancelOnExit];
    property Ctl3D;
    property Font;
    property TitleFont: TFont read FTitleFont write SetTitleFont;
    property FixedColor;
    property EditActions: TDBGridEhEditActions read FEditActions write FEditActions;  //\\\
//Wang Zhenhua Add
    property WzhStyle: Boolean read GetWzhStyle write SetWzhStyle default False;
    property DrawCurrency: Boolean read GetDrawCurrency write SetDrawCurrency default False;
    property CurrencyStyle: TMoneyStyle read GetCurrencyStyle write SetCurrencyStyle;
    property OnGetEditText: TGetEditEvent read FOnGetEditText write FOnGetEditText;
    property OnSetEditText: TSetEditEventEH read FOnSetEditText write FOnSetEditText;
    property OnTopLeftChanged: TNotifyEvent read FOnTopLeftChanged write FOnTopLeftChanged;
    property OnGetConfirmText:TGetConfirmTextEvent Read FOnGetCOnfirmText Write FOnGetConfirmText;
//    property OnEditorChanged;
    property GridLineWidth;
//Wang Zhenhua Add end

  end;

  TDBGridEh = class(TCustomDBGridEh)
  public
    //ddd
    property GridHeight;
    property RowCount;
    //\\\
    property Canvas;
    property SelectedRows;
  published
    property Align;
    property BorderStyle;
    property Color;
    property Columns stored False; //StoreColumns;
    property Ctl3D;
    property DataSource;
    property DefaultDrawing;
    property DragCursor;
    property DragMode;
    property Enabled;
    property FixedColor;
    property Font;
    property ImeMode;
    property ImeName;
    property Options;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ReadOnly;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property TitleFont;
    property Visible;
    property OnCellClick;
    property OnColEnter;
    property OnColExit;
    property OnColumnMoved;
    property OnDrawDataCell;  { obsolete }
    property OnDrawColumnCell;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEditButtonClick;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnStartDrag;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -