我想在MDI主窗体显示的时候,动态的根据我的MENU表中的内容,自动的添加菜单项。我的表为下:
表名:MENU
MNBH MNNAME
M01 人事管理
M02 考勤管理
M03 工资管理
M0101 人事档案管理
M0102 员工奖惩管理
M0201 考勤日报管理
M0202 考勤汇总管理MNBH 这个字段我想作为1. 作为动态添加的菜单项的NAME属性,2.作为动态添加的菜单项的OnClick的过程名。下面是问题:
1.我想把MNBH字段值长度为3的SELECT 出来,然后添加到菜单的一级菜单。
2.然的把MNBH字段值长度为5的SELECT 出来,添加到MNBH字段值的前三位的一级菜单下面。
3.动态添加菜单子项时,如要添加的子项的NAME,Caption等属性,我知道怎么样赋值。但是子菜单项的OnClick怎么样指定到我已建好的过程呢?我的理想效果如下:
人事管理 考勤管理 工资管理
人事档案管理 考勤日报管理
员工奖惩管理 考勤汇总管理
谢谢啦。。
表名:MENU
MNBH MNNAME
M01 人事管理
M02 考勤管理
M03 工资管理
M0101 人事档案管理
M0102 员工奖惩管理
M0201 考勤日报管理
M0202 考勤汇总管理MNBH 这个字段我想作为1. 作为动态添加的菜单项的NAME属性,2.作为动态添加的菜单项的OnClick的过程名。下面是问题:
1.我想把MNBH字段值长度为3的SELECT 出来,然后添加到菜单的一级菜单。
2.然的把MNBH字段值长度为5的SELECT 出来,添加到MNBH字段值的前三位的一级菜单下面。
3.动态添加菜单子项时,如要添加的子项的NAME,Caption等属性,我知道怎么样赋值。但是子菜单项的OnClick怎么样指定到我已建好的过程呢?我的理想效果如下:
人事管理 考勤管理 工资管理
人事档案管理 考勤日报管理
员工奖惩管理 考勤汇总管理
谢谢啦。。
解决方案 »
- 如何把DBgrid 中选中的那一行的值 赋给 edit 框
- 我想在 Memo控件上 截获快捷键 然后自己进行处理
- 遇到大麻烦了,救救我啊大家
- 做过覆盖MSGINA.DLL的进来领分~~~
- 请问DELPHI7有没有补丁呀?
- 谁有图象处理原码
- 数据控件的Refresh方法怎么用?
- 放分200:今天办理结婚登记,up有分
- delphi 6中,在visibroker 4.1下,当创建corba服务端对象时如何指定例程(instance)模式和线程模式?
- 我就是砸锅买铁也要解决这个问题,我又转了500分参与分,帮忙看看
- 这样的结果为什么样?
- 已知点,模拟曲线!在曲线上已经选定了一些点,用ADDXY函数,如选错了,想反选这些点,把他们去掉,这段程序怎么编,用什么函数?谢谢!
1.添加子菜单项时,如新的子菜单项的NAME,Caption 属性, 知道怎么设,但是不知道他的OnClick事件怎样指定到一个我已经写好的过程。
2.一级菜单,我知道怎样添加,但是二级子菜单就不知道怎么添加了。
那么我要动态的根据动态添加的菜单项的NAME属性M0101来确定它自己的OnClick事件。请问,我需要在程序里先写好所有的事件过程吗?然后再一对一的结OnClick事件赋值。还是可以动态的添加的建立菜单项的OnClick事件
请大家给个例子啊
procedure MClick(Sender: TObject);//定义私有过程procedure Tform1.MClick(Sender: TObject);
VAR
HBM:STRING;
begin
HBM := (Sender AS TMenuItem).name;
if hbm = 'M01' then
showmessage('M01')//做你想做的事情
else if hbm = 'M02' then
showmessage('M02')//做你想做的事情
else if hbm = 'M0101' then
showmessage('M0101')//做你想做的事情
else
showmessage('^_^');//做你想做的事情
end;var
Mi:TMenuItem;
MC:STRING;
begin
ADOTEMP.First;
WHILE NOT ADOTEMP.Eof DO
BEGIN
Mi:=TMenuItem.Create(Self);
MC := ADOTEMP.FIELDBYNAME('MNBH').AsString;
Mi.Name := MC;
MC := ADOTEMP.FIELDBYNAME('MNNAME').AsString;
Mi.Caption:=MC;
Mi.OnClick:=Hbbm;
Menu1.Items[0].Add(MI);
ADOTEMP.Next;
END;