TcxGridPopupMenu 中自定义菜单

procedure TFrm_SingleGrid.GridCustomPopupMenu(aGridPopup: TcxGridPopupMenu);
var
  AMenu: TComponent;
  FMenuItem, FSubMenuItem: TMenuItem;
begin
  if aGridPopup.BuiltInPopupMenus.Count = 0 then Exit;
  AMenu := aGridPopup.BuiltInPopupMenus[0].PopupMenu;
  if Assigned(AMenu) and AMenu.InheritsFrom(TPopupMenu) then
  begin
    //表头位置
    FMenuItem := TMenuItem.Create(Self);
    FMenuItem.Name := 'miHeaderAlignment';
    FMenuItem.Caption := '表头位置';

    FSubMenuItem := TMenuItem.Create(Self);
    FSubMenuItem.Name := 'miHeaderAlignmentLeft';
    FSubMenuItem.Caption := '靠左';
    FSubMenuItem.RadioItem := True;
    FSubMenuItem.GroupIndex := 5; //指定同一组
    //FSubMenuItem.Checked := True;
    FSubMenuItem.OnClick := miHeaderAlignmentClick;
    FMenuItem.Add(FSubMenuItem); //加入二级子菜单

    FSubMenuItem := TMenuItem.Create(Self);
    FSubMenuItem.Name := 'miHeaderAlignmentCenter';
    FSubMenuItem.Caption := '居中';
    FSubMenuItem.RadioItem := True;
    FSubMenuItem.GroupIndex := 5;
    FSubMenuItem.OnClick := miHeaderAlignmentClick;
    FMenuItem.Add(FSubMenuItem);
    TPopupMenu(AMenu).Items.Add(FMenuItem);

    FSubMenuItem := TMenuItem.Create(Self);
    FSubMenuItem.Name := 'miHeaderAlignmentRight';
    FSubMenuItem.Caption := '靠右';
    FSubMenuItem.RadioItem := True;
    FSubMenuItem.GroupIndex := 5;
    FSubMenuItem.OnClick := miHeaderAlignmentClick;
    FMenuItem.Add(FSubMenuItem);

    //表格位置
    FMenuItem := TMenuItem.Create(Self);
    FMenuItem.Name := 'miRowAlignment';
    FMenuItem.Caption := '表格位置';

    FSubMenuItem := TMenuItem.Create(Self);
    FSubMenuItem.Name := 'miRowAlignmentLeft';
    FSubMenuItem.Caption := '靠左';
    FSubMenuItem.RadioItem := True;
    FSubMenuItem.GroupIndex := 5; //指定同一组
    //FSubMenuItem.Checked := True;
    FSubMenuItem.OnClick := miRowAlignmentClick;
    FMenuItem.Add(FSubMenuItem); //加入二级子菜单

    FSubMenuItem := TMenuItem.Create(Self);
    FSubMenuItem.Name := 'miRowAlignmentCenter';
    FSubMenuItem.Caption := '居中';
    FSubMenuItem.RadioItem := True;
    FSubMenuItem.GroupIndex := 5;
    FSubMenuItem.OnClick := miRowAlignmentClick;
    FMenuItem.Add(FSubMenuItem);
    TPopupMenu(AMenu).Items.Add(FMenuItem);

    FSubMenuItem := TMenuItem.Create(Self);
    FSubMenuItem.Name := 'miRowAlignmentRight';
    FSubMenuItem.Caption := '靠右';
    FSubMenuItem.RadioItem := True;
    FSubMenuItem.GroupIndex := 5;
    FSubMenuItem.OnClick := miRowAlignmentClick;
    FMenuItem.Add(FSubMenuItem);
    //导出
    FMenuItem := TMenuItem.Create(Self);
    FMenuItem.Name := 'miExport';
    FMenuItem.Caption := '导出';
    FMenuItem.OnClick := Self.miExportClick;
    TPopupMenu(AMenu).Items.Add(FMenuItem);

    //打印
    FMenuItem := TMenuItem.Create(Self);
    FMenuItem.Name := 'miPrint';
    FMenuItem.Caption := '打印';
    FMenuItem.OnClick := Self.miPrintClick;
    TPopupMenu(AMenu).Items.Add(FMenuItem);
    //布局
    FMenuItem := TMenuItem.Create(Self);
    FMenuItem.Name := 'miSaveLayout';
    FMenuItem.Caption := '保存布局';
    FMenuItem.OnClick := Self.miSaveLayoutClick;
    TPopupMenu(AMenu).Items.Add(FMenuItem);
  end;
end;

//cxgrid Header标题 居左、居中、居右
procedure TFrm_SingleGrid.miHeaderAlignmentClick(Sender: TObject);
var
  AHitTest: TcxCustomGridHitTest;
begin
  AHitTest := cxgrdpmn_Main.HitTest;
  if GetHitTypeByHitCode(AHitTest.HitTestCode) = gvhtColumnHeader then
  begin
    if TMenuItem(Sender).Name = 'miHeaderAlignmentLeft' then
      TcxGridColumnHeaderHitTest(AHitTest).Column.HeaderAlignmentHorz := taLeftJustify;
    if TMenuItem(Sender).Name = 'miHeaderAlignmentRight' then
      TcxGridColumnHeaderHitTest(AHitTest).Column.HeaderAlignmentHorz := taRightJustify;
    if TMenuItem(Sender).Name = 'miHeaderAlignmentCenter' then
      TcxGridColumnHeaderHitTest(AHitTest).Column.HeaderAlignmentHorz := taCenter;
  end;
end;
//cxgrid 行数据  居左、居中、居右 
procedure TFrm_SingleGrid.miRowAlignmentClick(Sender :TObject);
var
  AHitTest: TcxCustomGridHitTest;
begin
  AHitTest := cxgrdpmn_Main.HitTest;
  if GetHitTypeByHitCode(AHitTest.HitTestCode) = gvhtColumnHeader then
  begin
    if TMenuItem(Sender).Name = 'miRowAlignmentLeft' then
      TcxCustomGridColumnHitTest(AHitTest).Column.GetProperties.Alignment.Horz := taLeftJustify;
    if TMenuItem(Sender).Name = 'miRowAlignmentRight' then
      TcxCustomGridColumnHitTest(AHitTest).Column.GetProperties.Alignment.Horz := taRightJustify;
    if TMenuItem(Sender).Name = 'miRowAlignmentCenter' then
      TcxCustomGridColumnHitTest(AHitTest).Column.GetProperties.Alignment.Horz := taCenter;
  end;

end;
// cxgrid 导出功能
procedure TFrm_SingleGrid.miExportClick(Sender: TObject);
var
  FileName: String;
begin
  dlgSave.Filter := '*.xls|*.xls|*.xml|*.xml|*.txt|*.txt|*.html|*.html';
  dlgSave.Title := '导出为';
  if not dlgSave.Execute then Exit;
  FileName := dlgSave.FileName;
  case dlgSave.FilterIndex of
    1 : ExportGridToExcel(FileName, cxgrd_Main);
    2 : ExportGridToXML(FileName, cxgrd_Main);
    3 : ExportGridToText(FileName, cxgrd_Main);
    4 : ExportGridToHTML(FileName, cxgrd_Main);
  end;

  TPublicClass.ShowDialog('导出完成...');

end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值