📄 dbgrideh.pas
字号:
public
property Alignment: TAlignment read GetAlignment write SetAlignment stored IsAlignmentStored;
property AlwaysShowEditButton: Boolean read GetAlwaysShowEditButton write SetAlwaysShowEditButton stored IsAlwaysShowEditButtonStored;
property AutoDropDown: Boolean read GetAutoDropDown write SetAutoDropDown stored IsAutoDropDownStored;
property AutoFitColWidth: Boolean read GetAutoFitColWidth write SetAutoFitColWidth default True;
property ButtonStyle: TColumnButtonStyleEh read FButtonStyle write SetButtonStyle default cbsAuto;
property Checkboxes: Boolean read GetCheckboxes write SetCheckboxes stored IsCheckboxesStored;
property Color: TColor read GetColor write SetColor stored IsColorStored;
property DblClickNextVal: Boolean read GetDblClickNextVal write SetDblClickNextVal stored IsDblClickNextValStored;
property DisplayFormat: string read FDisplayFormat write SetDisplayFormat;
property DropDownBox: TColumnDropDownBoxEh read FDropDownBox write SetDropDownBox;
property DropDownRows: Cardinal read FDropDownRows write FDropDownRows default 7; // obsolete
property DropDownShowTitles: Boolean read GetDropDownShowTitles write SetDropDownShowTitles stored IsDropDownShowTitlesStored;
property DropDownSizing: Boolean read GetDropDownSizing write SetDropDownSizing stored IsDropDownSizingStored;
property DropDownSpecRow: TSpecRowEh read FDropDownSpecRow write SetDropDownSpecRow;
property DropDownWidth: Integer read FDropDownWidth write SetDropDownWidth default 0;
property EditButtons: TEditButtonsEh read FEditButtons write SetEditButtons;
property EditMask: string read FEditMask write SetEditMask;
property EndEllipsis: Boolean read GetEndEllipsis write SetEndEllipsis stored IsEndEllipsisStored;
property FieldName: String read FFieldName write SetFieldName;
property Font: TFont read GetFont write SetFont stored IsFontStored;
property Footer: TColumnFooterEh read FFooter write SetFooter;
property Footers: TColumnFootersEh read FFooters write SetFooters;
property ImageList: TCustomImageList read FImageList write SetImageList;
{$IFDEF EH_LIB_VCL}
property ImeMode: TImeMode read GetImeMode write SetImeMode stored IsImeModeStored;
property ImeName: TImeName read GetImeName write SetImeName stored IsImeNameStored;
{$ENDIF}
property Increment: Extended read FIncrement write FIncrement stored IsIncrementStored;
property KeyList: TStrings read GetKeykList write SetKeykList;
property LookupDisplayFields: String read GetLookupDisplayFields write SetLookupDisplayFields stored IsLookupDisplayFieldsStored;
property MaxWidth: Integer read FMaxWidth write SetMaxWidth default 0;
property MinWidth: Integer read FMinWidth write SetMinWidth default 0;
property MRUList: TMRUListEh read FMRUList write SetMRUList;
property NotInKeyListIndex: Integer read FNotInKeyListIndex write SetNotInKeyListIndex default -1;
property PickList: TStrings read GetPickList write SetPickList;
property PopupMenu: TPopupMenu read FPopupMenu write SetPopupMenu;
property ReadOnly: Boolean read GetReadOnly write SetReadOnly stored IsReadOnlyStored;
property Tag: Longint read FTag write FTag default 0;
property Title: TColumnTitleEh read FTitle write SetTitle;
property ToolTips: Boolean read GetToolTips write SetToolTips stored IsToolTipsStored;
property Visible: Boolean read FVisible write SetVisible default True;
property Width: Integer read GetWidth write SetWidth stored IsWidthStored;
property WordWrap: Boolean read GetWordWrap write SetWordWrap stored IsWordWrapStored;
property OnDropDownBoxCheckButton: TCheckTitleEhBtnEvent
read GetOnDropDownBoxCheckButton write SetOnDropDownBoxCheckButton;
property OnDropDownBoxDrawColumnCell: TDrawColumnEhCellEvent
read GetOnDropDownBoxDrawColumnCell write SetOnDropDownBoxDrawColumnCell;
property OnDropDownBoxGetCellParams: TGetCellEhParamsEvent
read GetOnDropDownBoxGetCellParams write SetOnDropDownBoxGetCellParams;
property OnDropDownBoxSortMarkingChanged: TNotifyEvent
read GetOnDropDownBoxSortMarkingChanged write SetOnDropDownBoxSortMarkingChanged;
property OnDropDownBoxTitleBtnClick: TTitleEhClickEvent
read GetOnDropDownBoxTitleBtnClick write SetOnDropDownBoxTitleBtnClick;
property OnEditButtonClick: TButtonClickEventEh read FOnButtonClick write FOnButtonClick;
property OnEditButtonDown: TButtonDownEventEh read FOnButtonDown write FOnButtonDown;
property OnGetCellParams: TGetColCellParamsEventEh read FOnGetCellParams write SetOnGetCellParams;
property OnNotInList: TNotInListEventEh read FOnNotInList write FOnNotInList;
property OnUpdateData: TColCellUpdateDataEventEh read FUpdateData write FUpdateData;
end;
TColumnEhClass = class of TColumnEh;
TDBGridColumnEh = class(TColumnEh)
published
property Alignment;
property AlwaysShowEditButton;
property AutoDropDown;
property AutoFitColWidth;
property ButtonStyle;
property Checkboxes;
property Color;
property DblClickNextVal;
property DisplayFormat;
property DropDownBox;
property DropDownRows;
property DropDownShowTitles;
property DropDownSizing;
property DropDownSpecRow;
property DropDownWidth;
property EditButtons;
property EditMask;
property EndEllipsis;
property FieldName;
property Font;
property Footer;
property Footers;
property ImageList;
{$IFDEF EH_LIB_VCL}
property ImeMode;
property ImeName;
{$ENDIF}
property Increment;
property KeyList;
property LookupDisplayFields;
property MaxWidth;
property MinWidth;
property MRUList;
property NotInKeyListIndex;
property PickList;
property PopupMenu;
property ReadOnly;
property Tag;
property Title;
property ToolTips;
property Visible;
property Width;
property WordWrap;
property OnDropDownBoxCheckButton;
property OnDropDownBoxDrawColumnCell;
property OnDropDownBoxGetCellParams;
property OnDropDownBoxSortMarkingChanged;
property OnDropDownBoxTitleBtnClick;
property OnEditButtonClick;
property OnEditButtonDown;
property OnGetCellParams;
property OnNotInList;
property OnUpdateData;
end;
{ TDBGridColumnsEh }
TDBGridColumnsEh = class(TCollection)
private
FGrid: TCustomDBGridEh;
function GetColumn(Index: Integer): TColumnEh;
function GetState: TDBGridColumnsState;
function InternalAdd: TColumnEh;
procedure SetColumn(Index: Integer; Value: TColumnEh);
procedure SetState(NewState: TDBGridColumnsState);
protected
function GetOwner: TPersistent; override;
procedure Update(Item: TCollectionItem); override;
public
constructor Create(Grid: TCustomDBGridEh; ColumnClass: TColumnEhClass);
function Add: TColumnEh;
function ExistFooterValueType(AFooterValueType: TFooterValueType): Boolean;
procedure AddAllColumns(DeleteExisting: Boolean);
procedure LoadFromFile(const Filename: string);
procedure LoadFromStream(S: TStream);
procedure RebuildColumns;
procedure RestoreDefaults;
procedure SaveToFile(const Filename: string);
procedure SaveToStream(S: TStream);
property Grid: TCustomDBGridEh read FGrid;
property Items[Index: Integer]: TColumnEh read GetColumn write SetColumn; default;
property State: TDBGridColumnsState read GetState write SetState;
end;
{ TColumnsEhList }
TColumnsEhList = class(TList)
private
function GetColumn(Index: Integer): TColumnEh;
procedure SetColumn(Index: Integer; const Value: TColumnEh);
public
property Items[Index: Integer]: TColumnEh read GetColumn write SetColumn; default;
end;
{ TGridDataLinkEh }
TGridDataLinkEh = class(TDataLink)
private
FFieldCount: Integer;
FFieldMap: Pointer;
FFieldMapSize: Integer;
FGrid: TCustomDBGridEh;
FInUpdateData: Boolean;
FModified: Boolean;
FSparseMap: Boolean;
function GetDefaultFields: Boolean;
function GetFields(I: Integer): TField;
protected
function GetMappedIndex(ColIndex: Integer): Integer;
procedure ActiveChanged; override;
procedure DataSetChanged; override;
procedure DataSetScrolled(Distance: Integer); override;
procedure EditingChanged; override;
procedure FocusControl(Field: TFieldRef); override;
procedure LayoutChanged; override;
procedure RecordChanged(Field: TField); override;
procedure UpdateData; override;
public
constructor Create(AGrid: TCustomDBGridEh);
destructor Destroy; override;
function AddMapping(const FieldName: string): Boolean;
procedure ClearMapping;
procedure Modified;
procedure Reset;
property DefaultFields: Boolean read GetDefaultFields;
property FieldCount: Integer read FFieldCount;
property Fields[I: Integer]: TField read GetFields;
property SparseMap: Boolean read FSparseMap write FSparseMap;
end;
{ TBookmarkListEh }
TBookmarkListEh = class
private
FCache: TBookmarkStr;
FCacheFind: Boolean;
FCacheIndex: Integer;
FGrid: TCustomDBGridEh;
FLinkActive: Boolean;
FList: TStringList;
function GetCount: Integer;
function GetCurrentRowSelected: Boolean;
function GetItem(Index: Integer): TBookmarkStr;
procedure SetCurrentRowSelected(Value: Boolean);
procedure StringsChanged(Sender: TObject);
protected
function Compare(const Item1, Item2: TBookmarkStr): Integer;
function CurrentRow: TBookmarkStr;
procedure LinkActive(Value: Boolean);
public
constructor Create(AGrid: TCustomDBGridEh);
destructor Destroy; override;
function Find(const Item: TBookmarkStr; var Index: Integer): Boolean;
function IndexOf(const Item: TBookmarkStr): Integer;
function Refresh: Boolean; // drop orphaned bookmarks; True = orphans found
function SelectionToGridRect: TGridRect;
procedure Clear; // free all bookmarks
procedure Delete; // delete all selected rows from dataset
procedure SelectAll;
property Count: Integer read GetCount;
property CurrentRowSelected: Boolean read GetCurrentRowSelected
write SetCurrentRowSelected;
property Items[Index: Integer]: TBookmarkStr read GetItem; default;
end;
{ THeadTreeNode }
THeadTreeNode = class;
TDBGridEh = class;
LeafCol = record
FLeaf: THeadTreeNode;
FColumn: TColumnEh;
end;
PLeafCol = ^LeafCol;
TLeafCol = array[0..MaxListSize - 1] of LeafCol;
PTLeafCol = ^TLeafCol;
THeadTreeProc = procedure(node: THeadTreeNode) of object;
THeadTreeNode = class(TObject)
public
Child: THeadTreeNode;
Column: TColumnEh;
Drawed: Boolean;
Height: Integer;
HeightPrn: Integer;
Host: THeadTreeNode;
Next: THeadTreeNode;
Text: String;
VLineWidth: Integer;
Width: Integer;
WidthPrn: Integer;
WIndent: Integer;
constructor Create;
constructor CreateText(AText: String; AHeight, AWidth: Integer);
destructor Destroy; override;
function Add(AAfter: THeadTreeNode; AText: String; AHeight, AWidth: Integer): THeadTreeNode;
function AddChild(ANode: THeadTreeNode; AText: String; AHeight, AWidth: Integer): THeadTreeNode;
function Find(ANode: THeadTreeNode): Boolean;
procedure CreateFieldTree(AGrid: TCustomDBGridEh);
procedure DoForAllNode(proc: THeadTreeProc);
procedure FreeAllChild;
procedure Union(AFrom, ATo: THeadTreeNode; AText: String; AHeight: Integer);
end;
{ TDBGridEhSumList }
TDBGridEhSumList = class(TDBSumListProducer)
private
function GetActive: Boolean;
procedure SetActive(const Value: Boolean);
protected
procedure ReturnEvents; override;
public
constructor Create(AOwner: TComponent);
procedure SetDataSetEvents; override;
published
property Active: Boolean read GetActive write SetActive default False;
property ExternalRecalc default False;
property OnRecalcAll;
property OnAfterRecalcAll;
property SumListChanged;
property VirtualRecords default False;
end;
{TDBGridEhScrollBar}
TScrollBarVisibleModeEh = (sbAlwaysShowEh, sbNeverShowEh, sbAutoShowEh);
TDBGridEhScrollBar = class(TPersistent)
private
FDBGridEh: TCustomDBGridEh;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -