使用 cxgridDbTableview 扩展 cxGrid
extending cxGrid with cxgridDbTableview
我通过扩展 cxGrid 创建了一个组件并添加了一些必需的属性,我想做同样的事情并向 cxGridDBTableView 添加一些额外的功能,
我尝试扩展 cxGridDBTableView 并添加属性,但我无法访问这些属性,因为当我删除我的 TdxdmGrid 它使用默认的 cxgridTableView 但我想使用 TdxdmGridDbtableView,
我试过如下,但它显示了 2 个不同的组件,而且我设计的视图没有链接到网格。
如何实现?
请帮忙。
谢谢。
- 您必须使用
cxGridRegisteredViews
注册 View,而不是 RegisterComponets()
- 如果您希望将 TDXPDMGridDBTableView 作为默认视图,则必须覆盖
TcxGrid.GetDefaultViewClass()
。 DefaultView 是当您将 Grid 放入 Form 时创建的视图
TDXPDMGrid = class(TcxGrid)
...
protected
function GetDefaultViewClass: TcxCustomGridViewClass; override;
...
end;
...
function TDXPDMGrid.GetDefaultViewClass: TcxCustomGridViewClass;
begin
Result := TDXPDMGridDBTableView;
end;
...
initialization
cxGridRegisteredViews.Register(TDXPDMGridDBTableView, 'PDM Table');
...
finalization
cxGridRegisteredViews.Unregister(TDXPDMGridDBTableView);
我通过扩展 cxGrid 创建了一个组件并添加了一些必需的属性,我想做同样的事情并向 cxGridDBTableView 添加一些额外的功能, 我尝试扩展 cxGridDBTableView 并添加属性,但我无法访问这些属性,因为当我删除我的 TdxdmGrid 它使用默认的 cxgridTableView 但我想使用 TdxdmGridDbtableView,
我试过如下,但它显示了 2 个不同的组件,而且我设计的视图没有链接到网格。
如何实现? 请帮忙。
谢谢。
- 您必须使用
cxGridRegisteredViews
注册 View,而不是RegisterComponets()
- 如果您希望将 TDXPDMGridDBTableView 作为默认视图,则必须覆盖
TcxGrid.GetDefaultViewClass()
。 DefaultView 是当您将 Grid 放入 Form 时创建的视图
TDXPDMGrid = class(TcxGrid)
...
protected
function GetDefaultViewClass: TcxCustomGridViewClass; override;
...
end;
...
function TDXPDMGrid.GetDefaultViewClass: TcxCustomGridViewClass;
begin
Result := TDXPDMGridDBTableView;
end;
...
initialization
cxGridRegisteredViews.Register(TDXPDMGridDBTableView, 'PDM Table');
...
finalization
cxGridRegisteredViews.Unregister(TDXPDMGridDBTableView);