TcxGridPopupMenu 中自定义菜单

来源:互联网 发布:网络教育文凭单位认吗 编辑:程序博客网 时间:2024/06/05 00:49
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
原创粉丝点击