многоцветна dbgrid

Многоцветни DBGrid. 8 години по-късно.

Преди почти осем години, е роден Borland Delphi 1. Всички тези осем години от програмисти от целия свят, свързани с базата данни, решен на няколко трудни проблеми, които (заедно с решенията) са описани тук:
  • многоцветна DBGRID
  • Това могат да бъдат поставени в DBGrid
  • Необичайни TDBGrid

Помислете за това как те могат да бъдат решени днес. Ние използваме библиотеката безплатно за exUSSR EhLib Дмитрий Болшаков. В момента това са най-добрите компоненти в съотношение exUSSR функционалност + качество / цена. цялата конфигурация мрежа за яснота направени в изходния код. В своите приложения, повечето от тези действия могат да се извършват визуално в дизайнера.

1. Демонстрационен проект

С течение на времето, на BDE е официално обявен за мъртъв, така че ние като двигателят ще използва ADO. Прочетете повече тук: "Малко по малко за това как да използвате АДО в Делфи" (на същия член се взема bazka в MS Access). Няма проблем TADOConnection куп - TADODataSet причинява. Интересен момент в програмата е да редактирате свойствата на TADOConnection.ConnectionString по време на изпълнение:

2. оцветяване линия

Писмени събитие манипулатор OnGetCellParams:

Не боя върху платното, без да се обадя тънкости методи, просто посочете Grid клетъчни свойства преминали в аргументите - и всичко останало, той се прави!

Ако просто трябва да се подчертае реда, на която е курсора, това е още по-лесно:

3. отметката в поле DBGrid

Ако в полето DataSet е от тип Булева, без допълнителни усилия не трябва да, самата мрежа ще покаже отметка. Трябва да настроите свойствата на колоната DBGridEh следва за други типове полета:

4. Снимка в поле DBGrid

За да се покаже вместо областта на изображението, в зависимост от стойността на полето, направете следното: Колона [Ь] .ImageList - ImageList със снимки, Колона [Ь] .KeyList ленти тип имот - всеки ред - стойността на областта, която ще бъде заместена на мястото на изображението на ImageList с подходящ индекс; svoystvoColumn [в] .NotInKeyListIndex трябва да съдържа изображения на индекса за сравнение важността на областта, което не е KeyList (например, той е удобен за NULL стойности). Списък на имоти PickList използвани за сравнение на снимки на пояснения (трябва да настроите свойството да TRUE и Column.Tooltips DBGridEh.ShowHint).

5. прозорец райе

Кодът е взета от примерите за EhLib, манипулатор OnGetCellParams:

6. Групов

Първо трябва да се постави

След предварителна селекция, направена от потребителя чрез достъпно TDBGridEh.Selection собственост. Selection.SelectionType показва вида на избор:

По-подробен пример за това е в помощ EhLib и да копирате / изрязване / поставяне вече е завършена процедурата.

7. Комплекс заглавията

Това е, което липсва в стандартната мрежа и заради това, което се започне с завист поглежда 1C ;-).
Покажете как да го направя още по-лесно, отколкото да се обясни:

След това колоните с позиции от подзаглавието> субтитрите 1 и> 2 се смесват под заглавието заглавното> 1.

8. Бързо (частичното) търсене

Това е нещо, което засяга DBGridEh след обичайната мрежа (като демонстрация в Делфи след BioLife TurboPascal).

Решетка показва, че като натиснете Ctrl + F трябва да отидат в режим за бързо търсене.

Показва, че "бързо" режим на търсене е основен натискането на клавишите от букви и цифри, ще бъдат възприети като част от мрежа линия, той ще търси в текущата колона. Отиди в режим на редактиране, като натиснете F2.

9. Автоматично сортиране

За да сортирате по колони по обичайния мрежа, направете дълго тежката работа, с EhLib тя отнема няколко секунди:

Употреби в необходимостта да се добави един от модулите: EhLibADO, EhLibBDE, EhLibCDS, EhLibDBX или EhLibIBX в зависимост от вида на набора от данни, който използвате. Тези модули, когато са включени в заявлението, автоматично се записват на обекта подреждането.

Помогна източници. Код EhLib красиво, удобно разделени на модули. В резултат на проучването стана следните корекции:

Сега във всеки проект TADODataSet сортиране кодиране ще отнеме малко време ;-)

X.Podvedenie резултати.

Изходния код на проба демо bazka и коригирани EhLib модулите тук (19.8K).