?? dbgrideh.pas
字號:
procedure SetState(NewState: TDBGridColumnsState);
protected
function GetUpdateCount: Integer;
protected
function GetOwner: TPersistent; override;
procedure Update(Item: TCollectionItem); override;
property UpdateCount: Integer read GetUpdateCount;
public
constructor Create(Grid: TCustomDBGridEh; ColumnClass: TColumnEhClass);
function Add: TColumnEh;
function ExistFooterValueType(AFooterValueType: TFooterValueType): Boolean;
procedure AddAllColumns(DeleteExisting: Boolean);
procedure ActiveChanged;
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(TObjectList)
private
function GetColumn(Index: Integer): TColumnEh;
procedure SetColumn(Index: Integer; const Value: TColumnEh);
public
constructor Create; overload;
property Items[Index: Integer]: TColumnEh read GetColumn write SetColumn; default;
end;
{ TGridDataLinkEh }
TGridDataLinkEh = class(TDataLink)
private
FFieldCount: Integer;
FFieldMap: array of Integer;
FFieldMapSize: Integer;
FGrid: TCustomDBGridEh;
FInUpdateData: Boolean;
FModified: Boolean;
FSparseMap: Boolean;
function GetDefaultFields: Boolean;
function GetFields(I: Integer): TField;
protected
function GetMappedIndex(ColIndex: Integer): Integer;
function MoveBy(Distance: Integer): Integer; override;
procedure ActiveChanged; override;
{$IFDEF CIL}
procedure DataEvent(Event: TDataEvent; Info: TObject); override;
{$ELSE}
procedure DataEvent(Event: TDataEvent; Info: Integer); override;
{$ENDIF}
procedure DataSetChanged; override;
procedure DataSetScrolled(Distance: Integer); override;
procedure EditingChanged; override;
{$IFDEF CIL}
procedure FocusControl(const Field: TField); override;
{$ELSE}
procedure FocusControl(Field: TFieldRef); override;
{$ENDIF}
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(TBMListEh)
private
FGrid: TCustomDBGridEh;
protected
function GetDataSet: TDataSet; override;
procedure Invalidate; override;
procedure SetCurrentRowSelected(Value: Boolean); override;
procedure UpdateState; override;
public
constructor Create(AGrid: TCustomDBGridEh);
function SelectionToGridRect: TGridRect;
procedure Clear; override;
end;
{ THeadTreeNode }
THeadTreeNode = class;
TDBGridEh = class;
LeafCol = record
FLeaf: THeadTreeNode;
FColumn: TColumnEh;
end;
PLeafCol = ^LeafCol;
TLeafCol = array[0..MaxListSize - 1] of LeafCol;
// PTLeafCol = ^TLeafCol;
PTLeafCol = array of LeafCol;
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;
function GetLevel: Integer;
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;
FExtScrollBar: TScrollBar;
FKind: TScrollBarKind;
FTracking: Boolean;
FVisibleMode: TScrollBarVisibleModeEh;
function GetVisible: Boolean;
procedure ExtScrollWindowProc(var Message: TMessage);
procedure SetExtScrollBar(const Value: TScrollBar);
procedure SetVisible(Value: Boolean);
procedure SetVisibleMode(const Value: TScrollBarVisibleModeEh);
public
constructor Create(AGrid: TCustomDBGridEh; AKind: TScrollBarKind);
destructor Destroy; override;
function GetScrollInfo(var ScrollInfo: TScrollInfo): Boolean;
function IsScrollBarVisible: Boolean;
procedure Assign(Source: TPersistent); override;
procedure UpdateExtScrollBar;
property Kind: TScrollBarKind read FKind;
property VisibleMode: TScrollBarVisibleModeEh read FVisibleMode write SetVisibleMode default sbAutoShowEh;
published
property ExtScrollBar: TScrollBar read FExtScrollBar write SetExtScrollBar;
property Tracking: Boolean read FTracking write FTracking default False;
property Visible: Boolean read GetVisible write SetVisible default True;
end;
TVertDBGridEhScrollBar = class(TDBGridEhScrollBar)
published
property Visible stored False;
property VisibleMode;
end;
TDBGridEhSelectionType = (gstNon, gstRecordBookmarks, gstRectangle, gstColumns, gstAll);
TDBGridEhAllowedSelection = gstRecordBookmarks..gstAll;
TDBGridEhAllowedSelections = set of TDBGridEhAllowedSelection;
TDBCell = record
Col: Longint;
Row: TBookmarkStr;
end;
{ TDBGridEhIndicatorTitle }
TDBGridEhIndicatorTitle = class(TPersistent)
private
FDown: Boolean;
FDropdownMenu: TPopupMenu;
FShowDropDownSign: Boolean;
FTitleButton: Boolean;
FUseGlobalMenu: Boolean;
FGrid: TCustomDBGridEh;
procedure SetShowDropDownSign(const Value: Boolean);
public
property Down: Boolean read FDown;
constructor Create(AGrid: TCustomDBGridEh);
published
property DropdownMenu: TPopupMenu read FDropdownMenu write FDropdownMenu;
property ShowDropDownSign: Boolean read FShowDropDownSign write SetShowDropDownSign default False;
property TitleButton: Boolean read FTitleButton write FTitleButton default False;
property UseGlobalMenu: Boolean read FUseGlobalMenu write FUseGlobalMenu default True;
end;
{ TDBGridEhSelectionRect }
TDBGridEhSelectionRect = class(TObject)
private
FAnchor: TDBCell;
FGrid: TCustomDBGridEh;
FShiftCell: TDBCell;
function BoxRect(ALeft: Longint; ATop: TBookmarkStr; ARight: Longint; ABottom: TBookmarkStr): TRect;
function CheckState: Boolean;
function GetBottomRow: TBookmarkStr;
function GetLeftCol: Longint;
function GetRightCol: Longint;
function GetTopRow: TBookmarkStr;
public
constructor Create(AGrid: TCustomDBGridEh);
function DataCellSelected(DataCol: Longint; DataRow: TBookmarkStr): Boolean;
function SelectionToGridRect: TGridRect;
procedure Clear;
procedure Select(ACol: Longint; ARow: TBookmarkStr; AddSel: Boolean);
property BottomRow: TBookmarkStr read GetBottomRow;
property LeftCol: Longint read GetLeftCol;
property RightCol: Longint read GetRightCol;
property TopRow: TBookmarkStr read GetTopRow;
end;
{ TDBGridEhSelectionCols }
TDBGridEhSelectionCols = class(TColumnsEhList)
private
FAnchor: TColumnEh;
FGrid: TCustomDBGridEh;
FShiftCol: TColumnEh;
FShiftSelectedCols: TColumnsEhList;
procedure Add(ACol: TColumnEh);
public
constructor Create(AGrid: TCustomDBGridEh);
destructor Destroy; override;
function SelectionToGridRect: TGridRect;
procedure Clear; override;
procedure InvertSelect(ACol: TColumnEh);
procedure Refresh;
procedure Select(ACol: TColumnEh; AddSel: Boolean);
procedure SelectShift(ACol: TColumnEh {; Clear:Boolean});
end;
{ TDBGridEhSelection }
TDBGridEhSelection = class
private
FColumns: TDBGridEhSelectionCols;
FGrid: TCustomDBGridEh;
FRect: TDBGridEhSelectionRect;
FSelectionType: TDBGridEhSelectionType;
function GetRows: TBookmarkListEh;
procedure LinkActive(Value: Boolean);
procedure SetSelectionType(ASelType: TDBGridEhSelectionType);
protected
procedure SelectionChanged; virtual;
public
constructor Create(AGrid: TCustomDBGridEh);
destructor Destroy; override;
function DataCellSelected(DataCol: Longint; DataRow: TBookmarkStr): Boolean;
function SelectionToGridRect: TGridRect;
procedure Clear;
procedure Refresh;
procedure SelectAll;
procedure UpdateState;
property Columns: TDBGridEhSelectionCols read FColumns;
property Rect: TDBGridEhSelectionRect read FRect;
property Rows: TBookmarkListEh read GetRows;
property SelectionType: TDBGridEhSelectionType read FSelectionType;
end;
{ TSTDBGridEhFilter }
TSTDBGridEhFilter = class(TPersistent)
private
FGrid: TCustomDBGridEh;
FLocal: Boolean;
FUpateCount: Integer;
FVisible: Boolean;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -