Думаю, что перед тем, как продолжить рассмотрение функциональных возможностей Table View будет уместным немного отвлечься и чуть подробнее рассмотреть структуру View. Как видно из диаграммы, приведенной в предыдущем посте, все Grid View наследуются от класса TcxCustomGridView. И именно в этом классе описано ключевое свойство View – DataController:
property DataController: TcxCustomDataController;
Это свойство отвечает за подключение View к источнику данных. Кроме этого, DataController реализует функции управления данными, их сортировки, фильтрации и подсчета сумм. Естественно, в каждом наследнике TcxCustomGridView свойство DataController может описываться по-разному, но это всегда будет класс-наследник TcxCustomDataController. Например, для TcxGridDBTableView свойство DataController будет иметь тип TcxGridDBDataController, который наследуется от класса TcxDBDataController, являющегося, в свою очередь, наследником TcxCustomDataController.
Принципы ООП здесь используются в полной мере. Однако, тут есть и “обратная сторона медали”. Иногда в коде приходится заботиться о явном приведении типов.
Тем не менее, такой подход дает некоторое удобство при работе с View. Так, если мы в Run Time хотим выполнить какие-то операции с данными, привязанными к гриду, мы четко знаем, что, прежде всего, нам потребуется обратиться к свойству DataController.
Еще одно свойство класса TcxCustomGridView, на которое следует обратить внимание, – Styles:
property Styles: TcxCustomGridStyles;
С помощью этого свойства настраивается визуальное оформление View (цветовые схемы, шрифты и т.д.).
Вновь возвращаясь к диаграмме, можно заметить, что все View кроме Chart View имеют, в качестве родительского класса, класс TcxCustomGridTableView. Этот класс также имеет несколько свойств, на которые стоит обратить внимание. Они определяют различные аспекты поведения и оформления View.
property OptionsBehavior: TcxCustomGridTableOptionsBehavior;
содержит настройки, которые определяют реакцию View на действия пользователя.
property OptionsCustomize: TcxCustomGridTableOptionsCustomize;
содержит опции, которые определяют возможность пользователем изменять настройки View в Run Time.
property OptionsData: TcxCustomGridTableOptionsData;
содержит опции, которые определяют поведение View, связанных с даннами.
property OptionsSelection: TcxCustomGridTableOptionsSelection;
Содержит настройки, влияющие на выделение (selection).
property OptionsView: TcxCustomGridTableOptionsView;
Содержит настройки, определяющие внешний вид View.
property FilterBox: TcxGridFilterBox;
Содержит настройки, определяющие вид и поведение списка фильтрации.
property DateTimeHandling: TcxCustomGridTableDateTimeHandling;
Содержит настройки, определяющие способ отображения значений дат и времени во View.
Таким образом, при работе с View мы получаем четко структурированный набор свойств. Конечно, такая функциональность, какой обладает cxGrid, предполагает и огромный набор свойств, методов и событий для эффективного использования данного элемента управления. Но за счет грамотной организации классов использование cxGrid становится значительно комфортнее.
Другие статьи серии:
DevExpress. Заметки на полях #0
DevExpress. Заметки на полях #1
DevExpress. Заметки на полях #2
DevExpress. Заметки на полях #3
DevExpress. Заметки на полях #3.5
DevExpress. Заметки на полях #5
DevExpress. Заметки на полях #6
DevExpress. Заметки на полях #8
DevExpress. Заметки на полях #9
DevExpress. Заметки на полях #10
DevExpress. Заметки на полях #11
DevExpress. Заметки на полях #12
DevExpress. Заметки на полях #13
Нечаянно удалил комментарий относительно портации DevExpress в Lazarus:
“Эх, вот если бы компоненты DevExpress для Lazarus были.. цены бы им не было. Кстати, не в курсе, никто их не портировал, или вы только в сторону Delphi смотрите?”
Нет, не приходилось слышать о подобном…
Да, в Лазарусе не хватает поддержки компонентов Devexpress.