关于ToolBar的自定义问题

happyjoe 2002-10-21 04:40:25
ToolBar 有几个事件用来实现其自定义功能,但我实现这些事件时总是出错,不是index out range 就是很严重的av 错误,有谁知道如何实现这几个事件?

使用第三方控件就不要贴出来了。
...全文
47 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yxg20803 2002-10-22
  • 打赏
  • 举报
回复
up!!!!!!
z_hongbao 2002-10-22
  • 打赏
  • 举报
回复
gz
windofsun 2002-10-21
  • 打赏
  • 举报
回复
没用过Customizable,关注
windofsun 2002-10-21
  • 打赏
  • 举报
回复
This event occurs after the new button is already added to the toolbar. To respond before the button is added, possibly even preventing the user from adding the button, use the OnCustomizeCanInsert event instead.

上面是这个事件的帮助主题里的一句话。当Button已经被添加到toolbar上后,才会触发这个事件。所以你不应该在这个事件中又创建
happyjoe 2002-10-21
  • 打赏
  • 举报
回复
var Button: TToolButton

我看了comctrls中的代码,其实Button是一TControl类型,但根本就没有Create,我想是不是要我们自己来实现,所以我事件里Create它。
procedure TfrmMain.ToolBar1CustomizeNewButton(Sender: TToolBar;
Index: Integer; var Button: TToolButton);
begin
Button := TToolButton.Create(Self);
...
end;
然后就死机。

这个事件是用来在自定义对话框左边的listbox中添加按钮的,那么如何做呢?



mrbuddha 2002-10-21
  • 打赏
  • 举报
回复
procedure TfrmMain.Button1Click(Sender: TObject);
var
btn : TToolButton;
begin
btn := TToolButton.Create(self);
btn.caption :='tst';
btn.Parent := ToolBar1;
end;

procedure TfrmMain.ToolBar1CustomizeNewButton(Sender: TToolBar;
Index: Integer; var Button: TToolButton);
begin
ShowMessage(Button.Caption);
end;
试过了,没问题呀,是不是你说的问题我没理解,要不说详细点?
mrbuddha 2002-10-21
  • 打赏
  • 举报
回复
你是不是在这个事件中调用Button进行某些操作?此时Button正在创建,还没创建完成.
happyjoe 2002-10-21
  • 打赏
  • 举报
回复
OnCustomizeNewButton有个var Button: TButton参数,以创建这个Button就死机

OnCustomizeDelete事件(好像是这个)只要一实现,就报index out range 错误

我发现ToolBar有这样一些事件:OnCustomDrawButton,OnCustomizeAdded,OnCustomizeCanDelete,CustomizeCanInsert,OnCustomized,OnCustomizeDelete,OnCustomizeNewButton,OnCustomizeReset,OnCustomizing,我想它们和定制工具栏都有关系吧,可是我不知道怎么用,您能举些例子吗?
windofsun 2002-10-21
  • 打赏
  • 举报
回复
哪些事件有问题?代码贴出来看看?

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧