Как создать подкласс TcxGridDBTableView и использовать его, не теряя настройки GUI и не устанавливая его как компонент? - PullRequest
2 голосов
/ 03 августа 2011

Использование dev express позволяет действительно легко расширить представления Quantum Grid, как описано в

http://devexpress.com/Support/Center/KB/p/A334.aspx?searchtext=viewinfo

вам просто нужно объявить и переписать нужные вам методы:

TMyGridDBTableView = class(TcxGridDBTableView)
protected
  function GetViewInfoClass: TcxCustomGridViewInfoClass; override;
end;

Но чтобы создать TMyGridDBTableView, вы либо

  1. необходимо установить его как пакет компонентов с помощью RegisterComponent ()
  2. или создайте весь пользовательский интерфейс из кода, подобного этому

    Вид: = Grid.CreateView (TMyGridDBTableView) как TMyGridDBTableView; View.OptionsView.ColumnAutoWidth: = True; View.OptionsView.NewItemRow: = True; View.DataController.DataSource: = DataSource1; View.DataController.CreateAllItems;

Ни один из способов не подходит мне, потому что:

  1. Я прекратил установку компонентов в IDE несколько лет назад из-за нежелания перестраивать, переустанавливать их после каждого небольшого изменения, и хотя я пишу много компонентов, я инициализирую их кодом
  2. Я все еще устанавливаю компоненты dev express и манипулирую ими через пользовательский интерфейс. При необходимости переключения на чистый исходный код мгновенное отображение всех представлений приведет к буквально тысячам строк кода.

Есть ли способ сохранить свой уже разработанный TMyGridDBTableView, но улучшить его во время выполнения с помощью перегруженных методов TMyGridDBTableView?

1 Ответ

5 голосов
/ 03 августа 2011

Установка вашего собственного компонента в IDE уже опробована и протестирована. Это делают многие тысячи разработчиков по всему миру. Я тоже это делаю. Работает нормально. Вы на самом деле знаете это сами, так как вы делаете именно это с компонентами devexpress.

Однако, если вы не можете зарегистрировать свои собственные компоненты в IDE, вы можете использовать interposer , как предложил Sertac. Это работает до тех пор, пока вам не нужно публиковать какие-либо новые свойства, что, как я считаю, имеет место в описываемой вами ситуации.

Возможно, что проблемы с регистрацией компонентов в IDE на самом деле являются ошибками в вашем коде. Это не критика, кодирование поведения во время разработки довольно сложно. Поскольку вам не нужно публиковать новые свойства, а рассматриваемый компонент является сторонним компонентом, кажется, что подход со вставкой или аналогичный является вполне разумным.

...