многоцветна 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).