K krisjim Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-03 #1 如何根据表动态生成菜单, 表结构应如何设计? 以及相对应的事件怎么加载?
Y yeskert1 Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-03 #2 菜单的创建容易,看看帮助即可.至于你的数据结构,自己决定好了. 但是,关键是事件的加载.我以前是这样作的,供参考: 1、每个菜单调用一个事先存在的过程(假设叫switch)——这个容易吧! 2、每个菜单创建时,要将它的handle记录下来,以建立与菜单功能的对照 3、菜单要调用的代码在哪里?可以在动态库里,可以是com对象的方法——这些信息要 有,比如存在数据库中。 4、在switch里,根据菜单的handle来决定加载的东西并调用它——象不象windows系统的 消息分发? 就这样(给多少分?)!
菜单的创建容易,看看帮助即可.至于你的数据结构,自己决定好了. 但是,关键是事件的加载.我以前是这样作的,供参考: 1、每个菜单调用一个事先存在的过程(假设叫switch)——这个容易吧! 2、每个菜单创建时,要将它的handle记录下来,以建立与菜单功能的对照 3、菜单要调用的代码在哪里?可以在动态库里,可以是com对象的方法——这些信息要 有,比如存在数据库中。 4、在switch里,根据菜单的handle来决定加载的东西并调用它——象不象windows系统的 消息分发? 就这样(给多少分?)!
G GuestUser Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-17 #5 不需要的,以前写过一个播放器,像超级解霸一样的,只要写一个事件,里面有 sender as tmenuitem,然后返回的就是那个被点击的菜单,你就可以根据菜单来写了, 主要看你用来做什么了,具体俺也记不清楚了。。。
不需要的,以前写过一个播放器,像超级解霸一样的,只要写一个事件,里面有 sender as tmenuitem,然后返回的就是那个被点击的菜单,你就可以根据菜单来写了, 主要看你用来做什么了,具体俺也记不清楚了。。。
A anqingrong Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-25 #6 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; 如此就可以按你自己的意愿产生事件了
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; 如此就可以按你自己的意愿产生事件了