📄 cxdbvgrid.pas
字号:
VerticalGrid.UpdateData;
end;
procedure TcxDBVerticalGridDataController.UpdateItemIndexes;
begin
VerticalGrid.UpdateIndexes;
inherited UpdateItemIndexes;
end;
procedure TcxDBVerticalGridDataController.CheckGridModeBufferCount;
var
ACount: Integer;
begin
ACount := GetDefaultGridModeBufferCount;
if FPrevBufferCount <> ACount then
UpdateGridModeBufferCount;
FPrevBufferCount := ACount;
end;
function TcxDBVerticalGridDataController.DoScroll(AForward: Boolean): Boolean;
begin
Result := SupportsScrollBarParams;
if Result then
with Scroller do
if AForward then GoToNext else GoToPrev;
end;
function TcxDBVerticalGridDataController.GetDataSetRecordCount: Integer;
begin
if IsGridMode then
Result := DataSetRecordCount
else
Result := RowCount;
end;
function TcxDBVerticalGridDataController.GetScrollBarPos: Integer;
begin
if SupportsScrollBarParams then
if dceInsert in EditState then
Result := FPrevScrollBarPos
else
Result := RecNo - 1
else
Result := -1;
FPrevScrollBarPos := Result;
end;
function TcxDBVerticalGridDataController.GetScrollBarRecordCount: Integer;
begin
if SupportsScrollBarParams then
Result := DataSetRecordCount + Scroller.VisibleValueCount - 1
else
Result := -1;
end;
function TcxDBVerticalGridDataController.SetScrollBarPos(APos: Integer): Boolean;
begin
Result := SupportsScrollBarParams;
if Result then
RecNo := APos + 1;
end;
function TcxDBVerticalGridDataController.GetDefaultGridModeBufferCount: Integer;
begin
Result := VerticalGrid.ViewInfo.GetDefaultGridModeBufferCount;
if Result = 0 then
Result := inherited GetDefaultGridModeBufferCount;
end;
function TcxDBVerticalGridDataController.GetItemID(AItem: TObject): Integer;
begin
if AItem is TcxDBCellEdit then
Result := TcxDBCellEdit(AItem).ItemIndex
else
Result := -1;
end;
function TcxDBVerticalGridDataController.SupportsScrollBarParams: Boolean;
begin
Result := IsGridMode and IsSequenced;
end;
procedure TcxDBVerticalGridDataController.UpdateControl(
AInfo: TcxUpdateControlInfo);
begin
VerticalGrid.ControlUpdateData(AInfo);
end;
procedure TcxDBVerticalGridDataController.UpdateScrollBars;
begin
// refresh for GridMode
VerticalGrid.LayoutChanged;
end;
function TcxDBVerticalGridDataController.GetGridMode: Boolean;
begin
Result := DataModeController.GridMode;
end;
function TcxDBVerticalGridDataController.GetGridModeBufferCount: Integer;
begin
Result := DataModeController.GridModeBufferCount;
end;
function TcxDBVerticalGridDataController.GetScroller: TcxvgScroller;
begin
Result := VerticalGrid.Controller.Scroller;
end;
procedure TcxDBVerticalGridDataController.SetGridMode(Value: Boolean);
begin
DataModeController.GridMode := Value;
end;
procedure TcxDBVerticalGridDataController.SetGridModeBufferCount(Value: Integer);
begin
DataModeController.GridModeBufferCount := Value;
end;
function TcxDBVerticalGridDataController.GetVerticalGrid: TcxDBVerticalGrid;
begin
Result := TcxDBVerticalGrid(GetOwner);
end;
{ TcxDBCellEdit }
function TcxDBCellEdit.GetDataBindingClass: TcxItemDataBindingClass;
begin
Result := TcxDBVerticalGridItemDataBinding;
end;
{ TcxDBVerticalGridItemDataBinding }
procedure TcxDBVerticalGridItemDataBinding.Assign(Source: TPersistent);
begin
if Source is TcxDBVerticalGridItemDataBinding then
FieldName := TcxDBVerticalGridItemDataBinding(Source).FieldName;
end;
function TcxDBVerticalGridItemDataBinding.DefaultCaption: string;
var
AField: TField;
begin
AField := Field;
if AField = nil then
Result := FieldName
else
Result := AField.DisplayName;
end;
function TcxDBVerticalGridItemDataBinding.DefaultRepositoryItem: TcxEditRepositoryItem;
begin
Result := GetDefaultEditDBRepositoryItems.GetItemByField(Field);
end;
function TcxDBVerticalGridItemDataBinding.GetDefaultValuesProviderClass: TcxCustomEditDefaultValuesProviderClass;
begin
Result := TcxDBVerticalGridDefaultValuesProvider;
end;
function TcxDBVerticalGridItemDataBinding.GetValueTypeClass: TcxValueTypeClass;
begin
Result := GetValueTypeClassByField(Field);
end;
procedure TcxDBVerticalGridItemDataBinding.Init;
begin
inherited Init;
TcxDBVerticalGridDefaultValuesProvider(DefaultValuesProvider).DataSource := DataController.DataSource;
TcxDBVerticalGridDefaultValuesProvider(DefaultValuesProvider).Field := Field;
end;
procedure TcxDBVerticalGridItemDataBinding.ValueTypeClassChanged;
begin
TcxDBCellEdit(EditContainer).InternalPropertiesChanged;
end;
function TcxDBVerticalGridItemDataBinding.GetDataController: TcxDBVerticalGridDataController;
begin
Result := TcxDBVerticalGridDataController(inherited DataController);
end;
function TcxDBVerticalGridItemDataBinding.GetField: TField;
begin
Result := DataController.GetItemField(EditContainer.ItemIndex);
end;
function TcxDBVerticalGridItemDataBinding.GetFieldName: string;
begin
Result := DataController.GetItemFieldName(EditContainer.ItemIndex);
end;
procedure TcxDBVerticalGridItemDataBinding.SetFieldName(const Value: string);
begin
DataController.ChangeFieldName(EditContainer.ItemIndex, Value);
Init;
ValueTypeClassChanged;
end;
{ TcxDBEditorRowItemProperties }
function TcxDBEditorRowItemProperties.DefaultCaption: string;
begin
Result := DataBinding.DefaultCaption;
end;
function TcxDBEditorRowItemProperties.GetDisplayName: string;
begin
Result := Caption;
if DataBinding.FieldName <> '' then
Result := Format('%s [%s]', [Result, DataBinding.FieldName]);
end;
function TcxDBEditorRowItemProperties.GetInplaceEditContainerClass: TcxCellEditClass;
begin
Result := TcxDBCellEdit;
end;
function TcxDBEditorRowItemProperties.GetDataBinding: TcxDBVerticalGridItemDataBinding;
begin
Result := TcxDBVerticalGridItemDataBinding(inherited DataBinding);
end;
procedure TcxDBEditorRowItemProperties.SetDataBinding(
Value: TcxDBVerticalGridItemDataBinding);
begin
inherited DataBinding.Assign(Value);
end;
{ TcxDBEditorPropertiesCollection }
function TcxDBEditorPropertiesCollection.Add: TcxDBEditorRowItemProperties;
begin
Result := TcxDBEditorRowItemProperties(inherited Add);
end;
function TcxDBEditorPropertiesCollection.GetCollectionItemClass: TCollectionItemClass;
begin
Result := TcxDBEditorRowItemProperties;
end;
function TcxDBEditorPropertiesCollection.GetItem(
Index: Integer): TcxDBEditorRowItemProperties;
begin
Result := TcxDBEditorRowItemProperties(inherited Items[Index]);
end;
{ TcxDBEditorRowProperties }
function TcxDBEditorRowProperties.DefaultCaption: string;
begin
Result := DataBinding.DefaultCaption;
end;
function TcxDBEditorRowProperties.GetInplaceEditContainerClass: TcxCellEditClass;
begin
Result := TcxDBCellEdit;
end;
function TcxDBEditorRowProperties.GetDataBinding: TcxDBVerticalGridItemDataBinding;
begin
Result := TcxDBVerticalGridItemDataBinding(inherited DataBinding);
end;
procedure TcxDBEditorRowProperties.SetDataBinding(
Value: TcxDBVerticalGridItemDataBinding);
begin
inherited DataBinding.Assign(Value);
end;
{ TcxDBEditorRow }
function TcxDBEditorRow.GetPropertiesClass: TcxRowPropertiesClass;
begin
Result := TcxDBEditorRowProperties;
end;
function TcxDBEditorRow.GetProperties: TcxDBEditorRowProperties;
begin
Result := TcxDBEditorRowProperties(FProperties)
end;
procedure TcxDBEditorRow.SetProperties(Value: TcxDBEditorRowProperties);
begin
FProperties.Assign(Value);
end;
{ TcxDBMultiEditorRowProperties }
function TcxDBMultiEditorRowProperties.GetCollectionClass: TcxEditorPropertiesCollectionClass;
begin
Result := TcxDBEditorPropertiesCollection;
end;
function TcxDBMultiEditorRowProperties.GetEditors: TcxDBEditorPropertiesCollection;
begin
Result := TcxDBEditorPropertiesCollection(inherited Editors);
end;
procedure TcxDBMultiEditorRowProperties.SetEditors(
Value: TcxDBEditorPropertiesCollection);
begin
inherited Editors.Assign(Value);
end;
{ TcxDBMultiEditorRow }
function TcxDBMultiEditorRow.GetPropertiesClass: TcxRowPropertiesClass;
begin
Result := TcxDBMultiEditorRowProperties;
end;
function TcxDBMultiEditorRow.GetProperties: TcxDBMultiEditorRowProperties;
begin
Result := TcxDBMultiEditorRowProperties(FProperties);
end;
procedure TcxDBMultiEditorRow.SetProperties(
Value: TcxDBMultiEditorRowProperties);
begin
FProperties.Assign(Value);
end;
{ TcxDBVerticalGrid }
function TcxDBVerticalGrid.GetDataControllerClass: TcxCustomDataControllerClass;
begin
Result := TcxDBVerticalGridDataController;
end;
function TcxDBVerticalGrid.GetEditCellDataBindingClass: TcxItemDataBindingClass;
begin
Result := TcxDBVerticalGridItemDataBinding;
end;
function TcxDBVerticalGrid.GetEditorRowClass: TcxCustomRowClass;
begin
Result := TcxDBEditorRow;
end;
function TcxDBVerticalGrid.GetMultiEditorRowClass: TcxCustomRowClass;
begin
Result := TcxDBMultiEditorRow;
end;
procedure TcxDBVerticalGrid.InitDataController;
begin
end;
function TcxDBVerticalGrid.GetDataController: TcxDBVerticalGridDataController;
begin
Result := TcxDBVerticalGridDataController(FDataController);
end;
procedure TcxDBVerticalGrid.SetDataController(
Value: TcxDBVerticalGridDataController);
begin
FDataController.Assign(Value);
end;
initialization
RegisterClasses([TcxDBVerticalGridItemDataBinding]);
RegisterClasses([TcxDBEditorRow, TcxDBMultiEditorRow]);
RegisterClasses([TcxDBEditorRowProperties, TcxDBMultiEditorRowProperties]);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -