⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cxdbvgrid.pas

📁 delphi的的三方控件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  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 + -