鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 编程语言开发 > delphi > >

自定义 DBGridEh 的 IndicatorTitle 表头菜单

来源:互联网 作者:佚名 时间:2013-05-27 11:23
环境:Delphi 2010,EhLib 5.2 设置 DBGridEh 的属性: IndicatorTitle-ShowDropDownSign = True IndicatorTitle-TitleButton = True 这样即可显示表头的菜单,但是只有自定义可见列的功能。(PS.我使用的是已汉化的EhLib,所以默认菜单是中文) 为此,我们可

环境:Delphi 2010,EhLib 5.2

设置 DBGridEh 的属性:
IndicatorTitle->ShowDropDownSign = True
IndicatorTitle->TitleButton = True

这样即可显示表头的菜单,虚拟主机美国空间,但是只有自定义可见列的功能。(PS.我使用的是已汉化的EhLib,所以默认菜单是中文)

 

为此,我们可以设置 DBGridEh 的属性:

EditActions->geaCopyEh = True

EditActions->geaSelectAllEh = True

这样就有了复制和全选的功能。

 

但是诸如剪切、粘贴、删除这些菜单项是不需要的,网站空间,我们可以把它去掉。

在窗体创建事件中加入代码:

1 procedure TForm2.FormCreate(Sender: TObject); DBGridEhCenter.IndicatorTitleMenus := 4 [itmVisibleColumnsEh, itmCopy, itmSelectAll]; 5 end;

这样只会显示我们设定好的三个选项。

 

如果我们想添加自定义菜单项,可以在窗体拖入 PopupMenu 控件,然后设置 DBGridEh 属性:

IndicatorTitle->DropdownMenu = PopupMenu1 (你的控件名)

效果如图所示:

 

但是,我们想让它显示在第一项。添加代码:

1 // 请自行为窗体添加成员 DBGridEhPreviewIndicatorMenuItem: TDBGridEhMenuItem; 这是要加入菜单的菜单项。 TForm2.FormCreate(Sender: TObject); DBGridEhCenter.IndicatorTitleMenus := 7 [itmVisibleColumnsEh, itmCopy, itmSelectAll]; 8 DBGridEhCenter.OnBuildIndicatorTitleMenu := BuildIndicatorTitleMenu; 9 end; TForm2.BuildIndicatorTitleMenu(Grid: TCustomDBGridEh; var PopupMenu: TPopupMenu); DBGridEhCenter.DefaultBuildIndicatorTitleMenu(Grid, PopupMenu); DBGridEhPreviewIndicatorMenuItem = DBGridEhPreviewIndicatorMenuItem := TDBGridEhMenuItem.Create(Screen); ; 18 DBGridEhPreviewIndicatorMenuItem.OnClick := MenuEditClick; 19 DBGridEhPreviewIndicatorMenuItem.Enabled := True; 20 DBGridEhPreviewIndicatorMenuItem.Grid := Grid; 21 PopupMenu.Items.Insert(0, DBGridEhPreviewIndicatorMenuItem); 22 end; TForm2.MenuEditClick(Sender: TObject); ShowMessage(); // 所需执行的操作 27 end;

效果如图:

还可以对菜单进行分组,只要把 MenuItem 的 Caption 属性设置为 '-' 就可以了,这里不再截图。

网友评论
<