Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Компонент NXDBGrid, позволяющий отображать Dataset в транспонированном виде (столбцы в строках)

Оформил: DeeCo

Автор: Александр Ткаченко

Создание копонента было вызвано тем, что пришлось отображать объекты со множеством свойств, либо константных, либо изменяемых одновременно.
Стандартный ValueEditor не подходил по нескольким причинам:
  • невозможно отобразить сразу несколько колонок со значениями.
  • неизвестно, насколько хорошо будет передаваться между СОМ-объектами структуры, используемые для хранения значений.
  • нет контроля типов
  • дополнительная морока при состыковке с таблицами БД
В конце концов выбор пал на TDBGrid. За основу мы взяли TCustomDBGrid и TCustomGrid.
Класс отнаследован от TCustomGrid, методы TCustomDBGrid были вставлены простым копированием и дополнены функциональностью.

NXDBGrid дополнен возможностью редактирования Даты\времени (т.к. мы отнаследователись от TCustomGrid то мы не смогли вставить стандартный редактор от MS как Inplace, поэтому пришлось написать самим ;-) )
Не смогли добавить дефолтный редактор компонента для DBGrid (по двойному щелчку мыши).
Не смогли реализовать добавление редакторов и валидаторов (Хотели использовать паттерн State (состояние) при изменении текущего столбца), но то ли мы не со всем разобрались, то ли ребята из Борланда замутили ;-)(у некоторых функций забыли поставить Virtual, некоторые объявлены в приватной области).
Добавлены проверки типов данных при редактировании.
Скриншоты :

Использование компонента состоит в изменении свойства Transformed

Технология использования компонента у нас простая. Создаем виртуальный рекордсет, запихиваем в него данные и выполняем присвоение
ADODataset.Recordset = наш рекордсет

Скачать компонент NXDBGrids.Zip (93K)

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay