动态生成菜单,(100分)

  • 主题发起人 主题发起人 krisjim
  • 开始时间 开始时间
K

krisjim

Unregistered / Unconfirmed
GUEST, unregistred user!
如何根据表动态生成菜单,
表结构应如何设计?
以及相对应的事件怎么加载?
 
菜单的创建容易,看看帮助即可.至于你的数据结构,自己决定好了.
但是,关键是事件的加载.我以前是这样作的,供参考:
1、每个菜单调用一个事先存在的过程(假设叫switch)——这个容易吧!
2、每个菜单创建时,要将它的handle记录下来,以建立与菜单功能的对照
3、菜单要调用的代码在哪里?可以在动态库里,可以是com对象的方法——这些信息要
有,比如存在数据库中。
4、在switch里,根据菜单的handle来决定加载的东西并调用它——象不象windows系统的
消息分发?

就这样(给多少分?)!
 
不如你先发一个例子给我, 我再把分给你.
 
不需要的,以前写过一个播放器,像超级解霸一样的,只要写一个事件,里面有
sender as tmenuitem,然后返回的就是那个被点击的菜单,你就可以根据菜单来写了,
主要看你用来做什么了,具体俺也记不清楚了。。。
 
type
TTestMenuItem = class(TMenuItem)
private
FFormClass: string;
public
procedure Click; override;
//Example
property FormClass: string read FFormClass write FFormClass;
end;
....
porcedure TTestMenuItem.Click;
begin
if FormClass <> '' then
//do something
end;
.....
procedure Test(AOwner: TComponent);
var Item: TTestMenuItem;
begin
Item := TTestMenuItem.Create(AOwner);
with Item do
begin
FormClass := 'TFormOne';
end;
MeinMenu.Items.Add(Item);
end;

如此就可以按你自己的意愿产生事件了

 
后退
顶部