TcxGridPopupMenu 中自定义菜单
2016-07-16 21:19
393 查看
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;
相关文章推荐
- TcxGridPopupMenu中groupbox右键菜单汉化
- 在package.json中配置Script执行npm run tslint报错问题
- 使用fpm工具制作rpm包
- 一款产品的成败与产品经理有多大的关系?
- 一款产品的成败与产品经理有多大的关系?
- 用ant生成jbpm的数据库表
- 人人都是产品经理-别让灵魂跟不上脚步
- Cordova 生成错误 安装本地 npm 包时出错 解决方案
- 一款产品的成败与产品经理有多大的关系?
- (jbpm4)工作流引擎描述
- 产品经理——关于色彩搭配!!
- jbpm gpd.xml中文乱码
- 配置CNPM-基础案例
- rpm
- npm执行无响应
- 产品经理20堂之第一课---个人笔记
- 读书笔记-启示录
- 产品经理——关于版式设计!!
- 产品经理——如何提高时间管理能力!!
- 产品经理——如何提高沟通能力!!