使用dev express可以很容易地扩展Quantum Grid Views,如
中所述http://devexpress.com/Support/Center/KB/p/A334.aspx?searchtext=viewinfo
你只需声明并覆盖你需要的方法:
TMyGridDBTableView = class(TcxGridDBTableView)
protected
function GetViewInfoClass: TcxCustomGridViewInfoClass; override;
end;
但是要为TMyGridDBTableView消费,你要么
或者从像这样的代码构建整个UI
查看:= Grid.CreateView(TMyGridDBTableView)为TMyGridDBTableView; View.OptionsView.ColumnAutoWidth:= True; View.OptionsView.NewItemRow:= True; View.DataController.DataSource:= DataSource1; View.DataController.CreateAllItems;
这两种方式对我都不好,因为:
有没有办法保留我已经使用表单设计的TMyGridDBTableView,但是在运行时使用TMyGridDBTableView重载方法增强了它们?
答案 0 :(得分:5)
尝试在IDE中安装您自己的组件。全球有数千名开发人员这样做。我也是这样做的。它工作正常。你真的知道这一点,因为你使用devexpress组件就是这么做的。
但是,如果您在IDE中注册自己的组件已经死定,则可以使用Sertac建议的interposer。只要您不需要发布任何新属性,我就相信您所描述的情况。
在IDE中注册组件时遇到的问题可能实际上是代码中的错误。这并不意味着批评,设计时间行为的编码是非常具有挑战性的。由于您不需要发布新属性,并且由于相关组件是第三方组件,因此插入器或类似组件似乎是一种非常合理的方法。