各位大侠,现在我碰到一个问题,就是想利用dll在客户端动态的生成用户菜单,并且每项菜单的功能也想封装在dll里,但怎么传递给客户端,大家有没有好的实现方法,最好有可供参考的代码,谢了!在线等阿!
qq:5938099
qq:5938099
解决方案 »
- 谁能把下面的VB代码转为DELPHI的?
- windows下usb端口的读写
- 关于报表的备注和显示内容如何放置的问题请教
- 如何将VCL控件通过handle传递到别的此VCL控件的变量里,使这个VCL变量与它相等.
- 关于串口小问题
- 很菜的问题---制作安装程序
- 怎样获得鼠标在任意位置的点击事件?是否要调用系统消息?
- 将另一个Access数据库的数据成批插入到当前的Access数据库内的要SQL语句怎么写
- 请问各位高手一个特菜的问题:计算机的reset电路的工作原理?
- 有深圳的想做DELPHI+SQLSERVER 开发兼职吗?
- 哪里有delphi+sqlserver2000的数据库连接例子
- 问一个简单的SQL语句?
数据库中建一权限表
不同等级的用户安装不同数量的菜单项
在pro_click中调用dll,给你一个例子参考:
//////////////////////////////////////////////////////////
// 动态生成菜单的过程 //
//////////////////////////////////////////////////////////procedure Pro_CreateMenu;
var
MenuItem:TMenuItem;
begin
TMainMenu1.Items.Clear;
query1.close;
query1.SQL.clear;
query1.sql.add(' select * from xt_gncd order by xmdh ');
query1.Open;
if not query1.IsEmpty then
while not query1.Eof do
begin
MenuItem :=TMenuItem.create(self);
MenuItem.Name :='m'+trim(query1.fieldbyname('xmdh').asstring);
MenuItem.Caption := trim(query1.fieldbyname('xmmc').asstring); //菜单的鼠标点击事件
if query1.FieldByName('yjdbz').value=0 then // 叶接点标志=0为叶节点
begin
MenuItem.OnClick:=Pro_Click; //菜单的click 事件
end;
//由数据库动态生成菜单
if query.FieldByName('fbdh').value=0 then // 父辈代号=0为根节点
Form1.TMainMenu1.Items.add(MenuItem)
else
TMenuItem(form1.FindComponent('m'+trim(query1.fieldbyname('fbdh').asstring))).add(MenuItem); query1.next;
end;
end;procedure Pro_Click;
begin
ShowMessage('鼠标点击事件');
end;附加数据库表xt_gncd(功能菜单)的结构:
create table xt_gncd(
xmdh:char //项目代号--唯一标志
xmmc:char //项目名称
fbdh:char //父辈代号--唯一标志
yjdbz:integer//叶接点标志XMDH XMMC FBDH YJDBZ
100 文件(&F) 0 1
101 新建 100 0
103 打开 100 0200 编辑(&E) 0 1
201 复制 200 0
203 粘贴 200 0800 系统菜单(&S) 0 1
801 操作设置 800 0
803 口令修改 800 0
805 参数设置 800 0
807 信息设置 800 0900 帮助(&H) 0 1
901 帮助主题 900 0
903 关于 900 0
http://expert.csdn.net/Expert/topic/1394/1394937.xml?temp=.220318