OTA:向Action List中添加一个动作[D6]

王朝delphi·作者佚名  2006-01-09
宽屏版  字体: |||超大  

NewAction := TAction.Create(nil);

NewAction.ActionList := Services.ActionList;

NewAction.Caption := GetMenuText();

NewAction.Hint := 'Display a silly dialog box';

NewAction.ImageIndex := ImageIndex;

NewAction.OnUpdate := action_update;

NewAction.OnExecute := action_execute;

菜单项设置属性Action为新创建的动作。创建菜单项的关连部分就知道在哪里插入它。下面的例子是View菜单,将在View项单下面插入新创建的菜单项。(一般地,指定一个绝对的位置不是一个好方法:你永远不可能知道当其他向导在菜单中插入他们自己的菜单项后它的位置。对于将来版本的Delphi可能会对菜单重新排序。比较好的方法是通过指定的名称来查询指定的菜单。为了更简明,一个简单的例子如下。)

for I := 0 to Services.MainMenu.Items.Count - 1 do

begin

with Services.MainMenu.Items[I] do

begin

if CompareText(Name, 'ViewsMenu') = 0 then

begin

NewItem := TMenuItem.Create(nil);

NewItem.Action := NewAction;

Insert(0, NewItem);

end;

end;

end;

通过在IDE的action list中插入动作,用户可以在自定义工具条时看到这个动作。用户可以选择这个动作并将它作为按钮加入到任何一个工具条上。这可能会在你卸载向导时引发问题:所有的工具条按钮可能会以指向了不存在的对象和OnClick事件处理句柄而告终。为了防止出现访问错误,你的向导应该查询所有指向它的动作的工具条按钮,然后删除这些按钮。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有