property Font: TFont read GetFont write SetFont stored IsFontStored; property ImeMode: TImeMode read GetImeMode write SetImeMode stored IsImeModeStored; property ImeName: TImeName read GetImeName write SetImeName stored IsImeNameStored; property PickList: TStrings read GetPickList write SetPickList; property PopupMenu: TPopupMenu read FPopupMenu write SetPopupMenu; property ReadOnly: Boolean read GetReadOnly write SetReadOnly stored IsReadOnlyStored; property Title: TColumnTitle read FTitle write SetTitle; property Width: Integer read GetWidth write SetWidth stored IsWidthStored; end;
TColumnClass = class of TColumn;
TDBGridColumnsState = (csDefault, csCustomized);
TDBGridColumns = class(TCollection) private FGrid: TCustomVDBGrid; function GetColumn(Index: Integer): TColumn; function GetState: TDBGridColumnsState; procedure SetColumn(Index: Integer; Value: TColumn); procedure SetState(NewState: TDBGridColumnsState); protected function GetOwner: TPersistent; override; procedure Update(Item: TCollectionItem); override; public constructor Create(Grid: TCustomVDBGrid; ColumnClass: TColumnClass); function Add: TColumn; procedure LoadFromFile(const Filename: string); procedure LoadFromStream(S: TStream); procedure RestoreDefaults; procedure RebuildColumns; procedure SaveToFile(const Filename: string); procedure SaveToStream(S: TStream); property State: TDBGridColumnsState read GetState write SetState; property Grid: TCustomVDBGrid read FGrid; property Items[Index: Integer]: TColumn read GetColumn write SetColumn; default; end;
TGridDataLink = class(TDataLink) private FGrid: TCustomVDBGrid; FFieldCount: Integer; FFieldMapSize: Integer; FFieldMap: Pointer; FModified: Boolean; FInUpdateData: Boolean; FSparseMap: Boolean; function GetDefaultFields: Boolean; function GetFields(I: Integer): TField; protected procedure ActiveChanged; override; procedure DataSetChanged; override; procedure DataSetScrolled(Distance: Integer); override; procedure FocusControl(Field: TFieldRef); override; procedure EditingChanged; override; procedure LayoutChanged; override; procedure RecordChanged(Field: TField); override; procedure UpdateData; override; function GetMappedIndex(ColIndex: Integer): Integer; public constructor Create(AGrid: TCustomVDBGrid); 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;
TBookmarkList = class private FList: TStringList; FGrid: TCustomVDBGrid; FCache: TBookmarkStr; FCacheIndex: Integer; FCacheFind: Boolean; FLinkActive: Boolean; function GetCount: Integer; function GetCurrentRowSelected: Boolean; function GetItem(Index: Integer): TBookmarkStr; procedure SetCurrentRowSelected(Value: Boolean); procedure StringsChanged(Sender: TObject); protected function CurrentRow: TBookmarkStr; function Compare(const Item1, Item2: TBookmarkStr): Integer; procedure LinkActive(Value: Boolean); public constructor Create(AGrid: TCustomVDBGrid); destructor Destroy; override; procedure Clear; // free all bookmarks procedure Delete; // delete all selected rows from dataset function Find(const Item: TBookmarkStr; var Index: Integer): Boolean; function IndexOf(const Item: TBookmarkStr): Integer; function Refresh: Boolean;// drop orphaned bookmarks; True = orphans found property Count: Integer read GetCount; property CurrentRowSelected: Boolean read GetCurrentRowSelected write SetCurrentRowSelected; property Items[Index: Integer]: TBookmarkStr read GetItem; default; end;
TDBGridOption = (dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiSelect); TDBGridOptions = set of TDBGridOption;
{ The VDBGrid''''s DrawDataCell virtual method and OnDrawDataCell event are only called when the grid''''s Columns.State is csDefault. This is for compatibility with existing code. These routines don''''t provide sufficient information to determine which column is being drawn, so the column attributes aren''''t easily accessible in these routines. Column attributes also introduce the possibility that a column''''s field may be nil, which would break existing DrawDataCell code. DrawDataCell, OnDrawDataCell, and DefaultDrawDataCell are obsolete, retained for compatibility purposes. } TDrawDataCellEvent = procedure (Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState) of object;
{ The VDBGrid''''s DrawColumnCell virtual method and OnDrawColumnCell event are always called, when the grid has defined column attributes as well as when it is in default mode. These new routines provide the additional information needed to access the column attributes for the cell being drawn, and must support nil fields. }
TDrawColumnCellEvent = procedure (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState) of object; TDBGridClickEvent = procedure (Column: TColumn) of object;
TCustomVDBGrid = class(TCustomGrid) private FIndicators: TImageList; FTitleFont: TFont; FReadOnly: Boolean; FOriginalImeName: TImeName; FOriginalImeMode: TImeMode; FUserChange: Boolean; FLayoutFromDataset: Boolean; FOptions: TDBGridOptions; FTitleOffset, FIndicatorOffset: Byte; FUpdateLock: Byte; FLayoutLock: Byte; FInColExit: Boolean; FDefaultDrawing: Boolean; FSelfChangingTitleFont: Boolean; FSelecting: Boolean; FSelRow: Integer; FDataLink: TGridDataLink; FOnColEnter: TNotifyEvent; FOnColExit: TNotifyEvent; FOnDrawDataCell: TDrawDataCellEvent; FOnDrawColumnCell: TDrawColumnCellEvent; FEditText: string; FColumns: TDBGridColumns; FOnEditButtonClick: TNotifyEvent; FOnColumnMoved: TMovedEvent; FBookmarks: TBookmarkList; FSelectionAnchor: TBookmarkStr; FVertical: Boolean; FOnlyOne: Boolean; FTitlesWidth: integer; FOnCellClick: TDBGridClickEvent; FOnTitleClick:TDBGridClickEvent; function AcquireFocus: Boolean; procedure DataChanged; procedure EditingChanged; function GetDataSource: TDataSource; function GetFieldCount: Integer; function GetFields(FieldIndex: Integer): TField; function GetSelectedField: TField; function GetSelectedIndex: Integer; procedure InternalLayout; procedure MoveCol(RawCol: Integer); & 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >> [聊天工具]让你的MSN Messenger好友看到你在干嘛__天极Yesky [聊天工具]让你的Foxmail不再撒谎 [聊天工具]IncrediMail让你的E-mail也作秀 [常用软件]让你的Blog拥有Google日历 [常用软件][网络]Stuff Plug 让你的MSN聊天与众不同 [Delphi程序]让你的DBGridEh的Column自动适应宽度
|