cxgridheaderpopupmenuitems.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 651 行 · 第 1/2 页

PAS
651
字号
      AGroupIndex := -1
    else
      AGroupIndex := HitGridView.GroupedColumnCount;
    HitColumn.GroupBy(AGroupIndex);
  finally
    HitGridView.EndUpdate;
  end;
  TcxGridTableViewAccess.DoColumnPosChanged(HitGridView, HitColumn);
end;

function TcxGridGroupByThisField.GetCaption: string;
begin
  if HitColumn.GroupIndex <> -1 then
    ResCaption := @cxSGridRemoveThisGroupItem
  else
    ResCaption := @cxSGridGroupByThisField;
  Result := inherited GetCaption;
end;

function TcxGridGroupByThisField.GetEnabled: Boolean;
begin
  Result := TcxCustomGridTableItemAccess.CanGroup(HitColumn);
end;

function TcxGridGroupByThisField.GetImageResourceName: string;
begin
  Result := AImageName + '3';
end;

function TcxGridGroupByThisField.GetVisible: Boolean;
begin
  Result := HitGridView.OptionsCustomize.ColumnGrouping;
end;

{ TcxGridGroupByBox }

constructor TcxGridGroupByBox.Create;
begin
  inherited;
  ResCaption := @cxSGridGroupByBox;
end;

procedure TcxGridGroupByBox.Execute(Sender: TObject);
begin
  GridOperationHelper.DoShowGroupingPanel(not GridOperationHelper.IsGroupingPanelShowing);
end;

function TcxGridGroupByBox.GetDown: Boolean;
begin
  Result := GridOperationHelper.IsGroupingPanelShowing;
end;

function TcxGridGroupByBox.GetImageResourceName: string;
begin
  Result := AImageName + '7';
end;

function TcxGridGroupByBox.GetVisible: Boolean;
begin
  Result := HitGridView.OptionsCustomize.ColumnGrouping;
end;

{ TcxGridAligmentSubMenu }

constructor TcxGridAlignmentSubMenu.Create;
begin
  inherited;
  ResCaption := @cxSGridAlignmentSubMenu;
end;

function TcxGridAlignmentSubMenu.GetVisible: Boolean;
begin
  Result := HitColumn.Properties <> nil;
end;

{ TcxGridAlignLeft }

procedure TcxGridAlign.Execute(Sender: TObject);
begin
  case Tag of
    0: HitColumn.GetProperties.Alignment.Horz := taLeftJustify;
    1: HitColumn.GetProperties.Alignment.Horz := taRightJustify;
    2: HitColumn.GetProperties.Alignment.Horz := taCenter;
  end;
end;

function TcxGridAlign.GetDown: Boolean;
var
  AProperties: TcxCustomEditProperties;
begin
  AProperties := HitColumn.GetProperties;
  case Tag of
    0: Result := AProperties.Alignment.Horz = taLeftJustify;
    1: Result := AProperties.Alignment.Horz = taRightJustify;
  else
    Result := AProperties.Alignment.Horz = taCenter;
  end;
end;

function TcxGridAlign.GetEnabled: Boolean;
begin
  Result := esoHorzAlignment in HitColumn.GetProperties.GetSupportedOperations;
end;

class function TcxGridAlign.GetParentOperationClass: TcxGridPopupMenuOperationClass;
begin
  Result := TcxGridAlignmentSubMenu;
end;

{ TcxGridAlignLeft }

constructor TcxGridAlignLeft.Create;
begin
  inherited;
  ResCaption := @cxSGridAlignLeft;
  Tag := 0;
end;

function TcxGridAlignLeft.GetImageResourceName: string;
begin
  Result := AImageName + '4';
end;

{ TcxGridAlignRight }

constructor TcxGridAlignRight.Create;
begin
  inherited;
  ResCaption := @cxSGridAlignRight;
  Tag := 1;
end;

function TcxGridAlignRight.GetImageResourceName: string;
begin
  Result := AImageName + '5';
end;

{ TcxGridAlignCenter }

constructor TcxGridAlignCenter.Create;
begin
  inherited;
  ResCaption := @cxSGridAlignCenter;
  Tag := 2;
end;

function TcxGridAlignCenter.GetImageResourceName: string;
begin
  Result := AImageName + '6';
end;

{ TcxGridBestFit }

constructor TcxGridBestFit.Create;
begin
  inherited;
  ResCaption := @cxSGridBestFit;
end;

procedure TcxGridBestFit.Execute(Sender: TObject);
begin
  HitColumn.ApplyBestFit(True, True);
end;

function TcxGridBestFit.GetEnabled: Boolean;
begin
  Result := TcxCustomGridTableItemAccess.CanHorzSize(HitColumn);
end;

function TcxGridBestFit.GetImageResourceName: string;
begin
  Result := AImageName + '9';
end;

function TcxGridBestFit.GetVisible: Boolean;
begin
  Result := HitGridView.OptionsCustomize.ColumnHorzSizing;
end;

{ TcxGridBestFitAllColumns }

constructor TcxGridBestFitAllColumns.Create;
begin
  inherited;
  ResCaption := @cxSGridBestFitAllColumns;
end;

procedure TcxGridBestFitAllColumns.Execute(Sender: TObject);
begin
  TcxCustomGridTableView(HitGridView).ApplyBestFit(nil, True, True);
end;

function TcxGridBestFitAllColumns.GetVisible: Boolean;
begin
  Result := HitGridView.OptionsCustomize.ColumnHorzSizing;
end;

{ TcxGridCustColumns }

constructor TcxGridRemoveColumn.Create;
begin
  inherited;
  ResCaption := @cxSGridRemoveColumn;
end;

procedure TcxGridRemoveColumn.Execute(Sender: TObject);
begin
  HitColumn.Visible := False;
  TcxGridTableViewAccess.DoColumnPosChanged(HitGridView, HitColumn);
end;

function TcxGridRemoveColumn.GetVisible: Boolean;
begin
  Result := TcxCustomGridTableItemAccess.CanHide(HitColumn);
end;

{ TcxGridFieldChoozer }

constructor TcxGridFieldChooser.Create;
begin
  inherited;
  ResCaption := @cxSGridFieldChooser;
end;

procedure TcxGridFieldChooser.Execute(Sender: TObject);
begin
  GridOperationHelper.DoShowColumnCustomizing(
    not GridOperationHelper.IsColumnsCustomizingShowing);
end;

function TcxGridFieldChooser.GetDown: Boolean;
begin
  Result := GridOperationHelper.IsColumnsCustomizingShowing;
end;

function TcxGridFieldChooser.GetImageResourceName: string;
begin
  Result := AImageName + '8';
end;

{ TcxGridShowFooter }

constructor TcxGridShowFooter.Create;
begin
  inherited;
  ResCaption := @cxSGridShowFooter;
end;

procedure TcxGridShowFooter.Execute(Sender: TObject);
begin
  GridOperationHelper.DoShowSummaryFooter(
    not GridOperationHelper.IsSummaryFooterShowing);
end;

function TcxGridShowFooter.GetDown: Boolean;
begin
  Result := GridOperationHelper.IsSummaryFooterShowing;
end;

function TcxGridShowFooter.GetImageResourceName: string;
begin
  Result := AImageName + '10';
end;

{ TcxGridShowGroupFooter }

constructor TcxGridShowGroupFooter.Create;
begin
  inherited;
  ResCaption := @cxSGridShowGroupFooter;
end;

procedure TcxGridShowGroupFooter.Execute(Sender: TObject);
begin
  with HitGridView.OptionsView do
    if GroupFooters = gfInvisible then
      GroupFooters := PrevGroupFooters
    else
      GroupFooters := gfInvisible;
end;

function TcxGridShowGroupFooter.GetDown: Boolean;
begin
  Result := HitGridView.OptionsView.GroupFooters <> gfInvisible;
end;

function TcxGridShowGroupFooter.GetEnabled: Boolean;
begin
  Result := HitGridView.GroupedColumnCount <> 0;
end;

function TcxGridShowGroupFooter.GetImageResourceName: string;
begin
  Result := AImageName + '11';
end;

function TcxGridShowGroupFooter.GetVisible: Boolean;
begin
  with HitGridView do
    Result := (GroupedColumnCount <> 0) or OptionsCustomize.ColumnGrouping;
end;

{ TcxGridHeaderPopupMenuOperations }

procedure TcxGridHeaderPopupMenuOperations.AddItems;
begin
  AddItem(TcxGridSortColumnAsc);
  AddItem(TcxGridSortColumnDesc);
  AddItem(TcxGridClearSorting);
  AddItem(TcxGridGroupByThisField).BeginGroup := True;
  AddItem(TcxGridGroupByBox);
  AddItem(TcxGridShowFooter).BeginGroup := True;
  AddItem(TcxGridShowGroupFooter);
  AddItem(TcxGridRemoveColumn).BeginGroup := True;
  AddItem(TcxGridFieldChooser);
  AddItem(TcxGridAlignmentSubMenu).BeginGroup := True;
  AddItem(TcxGridAlignLeft);
  AddItem(TcxGridAlignRight);
  AddItem(TcxGridAlignCenter);
  AddItem(TcxGridBestFit);
  AddItem(TcxGridBestFitAllColumns).BeginGroup := True;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?