1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154:
| type TdxDbgridOption = (egoColumnSizing, egoColumnMoving, egoEditing, egoTabs, egoTabThrough, egoRowSelect, egoMultiSelect, egoCanDelete, egoConfirmDelete, egoCanNavigation, egoCanAppend, egoCancelOnExit, egoImmediateEditor, egoCanInsert, egoLoadAllRecords, egoPreview, egoDrawEndEllipsis, egoStoreToRegistry, egoAutoWidth, egoShowHourGlass, egoCaseInsensitive, egoDblClick, egoIndicator, egoExtMultiSelect, egoResetColumnFocus, egoExtCustomizing, egoHideFocusRect, egoStoreToIniFile, egoUseLocate, egoSmartReload, egoSmartRefresh, egoSeekDetail );
TdxDbgridOptions = Set of TdxDbgridOption;
TdxDBGridColumn = class( TCollectionItem ) private fCaption : string; fVisible : boolean; fWidth : integer; fBandIndex : integer; fRowIndex : integer; fFieldName : string; public constructor Create( Collection: TCollection ); override; published property Caption : string read fCaption write fCaption; property Visible : boolean read fVisible write fVisible; property Width : integer read fWidth write fWidth; property BandIndex : integer read fBandIndex write fBandIndex; property RowIndex : integer read fRowIndex write fRowIndex; property FieldName : string read fFieldname write fFieldname; end;
TdxDBGridMaskColumn = class( TdxDBGridColumn ) private public end;
TdxDBGridDateColumn = class( TdxDBGridColumn ) private public end;
TdxDBGridCheckColumn = class( TdxDBGridColumn ) private fValueChecked : string; fValueUnchecked : string; public published property ValueChecked : string read fValueChecked write fValueChecked; property ValueUnchecked : string read fValueUnChecked write fValueUnChecked; end;
TdxDBGridItemList = class(TCollection) private fItems: array of TdxDBGridColumn; fOwner: TComponent; protected function GetItem( aIndex: Integer ) : TdxDBGridColumn; procedure SetItem( aIndex: Integer; aItem: TdxDBGridColumn ); public constructor Create( aOwner : TComponent ); function Add(): TdxDBGridColumn; overload; function GetOwner: TPersistent; override; property Items[Index: Integer]: TdxDBGridColumn read GetItem write SetItem; default; end;
TdxDBGrid = class( TcxGrid ) private fOldkeyField : string; fOldOptions : TdxDbgridOptions; fOldFields : TdxDBGridItemList; procedure TransferOldOptions(); procedure setOldFields(const aValue: TdxDBGridItemList); protected procedure DefineProperties( Filer: TFiler ); override; procedure Loaded; override; public constructor Create( aOwner : TComponent ); override; destructor Destroy(); override; published property KeyField : string read fOldkeyField write fOldKeyField; property Options : TdxDbgridOptions read fOldOptions write fOldOptions; property OldFields : TdxDBGridItemList read fOldFields write setOldFields; end;
procedure Register;
implementation
uses SysUtils;
constructor TdxDBGridItemList.Create( aOwner : TComponent ); begin inherited Create( TdxDBGridColumn ); fOwner := aOwner; end;
function TdxDBGridItemList.GetOwner: TPersistent; begin Result := fOwner; end;
function TdxDBGridItemList.Add(): TdxDBGridColumn; begin Result := inherited Add as TdxDBGridColumn; end;
function TdxDBGridItemList.GetItem(aIndex: Integer): TdxDBGridColumn; var i: integer; begin result := TdxDBGridColumn( inherited Items[ aIndex ] ); end;
procedure TdxDBGridItemList.SetItem( aIndex: Integer; aItem: TdxDBGridColumn); begin Items[ aIndex ].Assign( aItem ); end; constructor TdxDBGrid.Create( aOwner : TComponent ); begin inherited Create( aOwner ); fOldFields := TdxDBGridItemList.Create( Self ); end;
destructor TdxDBGrid.Destroy(); begin FreeAndNil( fOldFields ); inherited; end;
procedure TdxDBGrid.DefineProperties( Filer: TFiler ); begin inherited; end;
procedure TdxDBGrid.setOldFields(const aValue: TdxDBGridItemList); begin fOldFields.Assign( aValue ); end;
procedure TdxDBGrid.Loaded; begin try inherited Loaded; TransferOldOptions(); except ApplicationHandleException(Self); end; end; |