расширение cxGrid с помощью cxGridDBTableView

#delphi #devexpress #vcl #delphi-10.2-tokyo #tcxgrid

#delphi #devexpress #vcl #delphi-10.2-Токио #tcxgrid

Вопрос:

Я создал компонент, расширив cxGrid и добавив некоторые необходимые свойства, я хочу сделать то же самое и добавить некоторые дополнительные функции в cxGridDBTableView, я попытался расширить cxGridDBTableView и добавил свойства, но я не могу получить доступ к этим свойствам, потому что, когда я удаляю свой TdxdmGrid, он использует cxGridDBTableView по умолчанию, но я хочу использовать TdxdmGridDbtableView,

Я пробовал, как показано ниже, но он показывает 2 разных компонента, а созданный мной вид не связан с сеткой. введите описание изображения здесь

Как этого можно достичь? Пожалуйста, помогите.

Спасибо.

Комментарии:

1. Обратитесь со своим вопросом в службу поддержки DevEx. Они очень полезны и подскажут вам, где вы ошиблись.

2. Пожалуйста , не публикуйте исходный код в виде скриншотов! Для этого есть функция «Вставить код».

Ответ №1:

  1. Вы должны зарегистрировать View с cxGridRegisteredViews помощью, а не с RegisterComponets()
  2. Если вы хотите использовать TDXPDMGridDBTableView в качестве представления по умолчанию, вы должны переопределить TcxGrid.GetDefaultViewClass() . DefaultView — это представление, которое создается, когда вы помещаете свою сетку в форму
   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);