我想更改标准DBNavigator栏上的插入按钮的行为,从数据集插入到追加.
我可以在BeforeAction事件中捕获按钮单击,执行追加等操作;然后在OnClick事件中中止原始插入,但这似乎有点黑客.有更好的想法吗?我正在使用D6(时钟500,000公里,仍然很强劲……).
谢谢你的建议
问候,
PhilW.
解决方法
您可以从TDBNavigator派生自己的类并覆盖BtnClick方法.
或者,对于快速和脏的修复,您可以在运行时更改插入按钮的单击处理程序,例如:
或者,对于快速和脏的修复,您可以在运行时更改插入按钮的单击处理程序,例如:
type THackDBNavigator = class(TDBNavigator); procedure TForm1.DBNavigatorInsertClick(Sender: TObject); var DBNavigator: TDBNavigator; begin DBNavigator := ((Sender as TControl).Parent as TDBNavigator); if Assigned(DBNavigator.DataSource) and (DBNavigator.DataSource.State <> dsInactive) then begin if Assigned(DBNavigator.BeforeAction) then DBNavigator.BeforeAction(DBNavigator,nbInsert); DBNavigator.DataSource.DataSet.Append; if Assigned(DBNavigator.OnClick) then DBNavigator.OnClick(DBNavigator,nbInsert); end; end; procedure TForm1.FormCreate(Sender: TObject); begin THackDBNavigator(DBNavigator1).Buttons[nbInsert].OnClick := DBNavigatorInsertClick; end;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。