一个form中多个actionlist的问题,求解
主窗口中使用一个PageControl,使用时新建tabsheet,并将对应frame放置到新建tabsheet中.每个frame都有自带的actionlist及对应快捷键,当主窗口中的tabsheet大于两个时,actionlist对应的快捷键不是不起作用,就是调用其他过程,在不就是delphi提示内存错误.
现在想在每个tabsheet新建或激活时,主窗口的actionlist变为对应frame中的actionlist,求解!
[解决办法]
激活tabsheet时,将当前form 的action设置为对应的tabsheet中的actionlist
[解决办法]
这种方式应该是不行的。action与Tactionlist根本就不是同一类型。没怎么注意过这个问题。是不是因为你的焦点不在当前TABSHEET上?
实在不行就改成MDI形式吧
[解决办法]
试一下楼上的改MDI方法吧,MDIChild对应一个actionlist
[解决办法]
直接对frame.actionlist := from1.actionlist ;
或者单独赋值frame.action := actionlist.action[0];
[解决办法]
如楼上.
主窗体是ActionList;frame也是ActionList 这2个就是同1东西啊,直接关联不行吗
form1.ActionList:=FrameX.ActionList;
form1.ActionList.Actions[0]:=FrameX.ActionList.Actions[0];
每个tabsheet中Frame名称会不同,可以用FindComponent或者tabsheet的Controls取得