Зазвичай для перемальовування зображення в осередках використовується метод OnDrawColumnCell.
Його параметр Rect - структура, що описує займаний осередком прямокутник; параметр Column - колонка DBGrid, в якій слід змінити спосіб малювання зображення. Для перегляду тексту використовується метод TextOut властивості Canvas компонента TDBGrid.
Припустимо, нам потрібно змінити колір тексту і фону рядка в залежності від значення якого-небудь поля (наприклад, VenueNo). Створимо оброблювач події OnDrawColumnCell компонента DBGrid1.
У разі Delphi відповідний код має вигляд:
В результаті на етапі виконання при відображенні рядків, в яких значення поля VenueNo дорівнює 1, фон осередків буде пофарбований в зелений колір, а текст виведений білим кольором.
При виведенні виділених рядків всі дані в осередках виявилися вирівняними по лівому краю. Якщо ми хочемо більш коректно відобразити вирівнювання тексту в колонці, слід злегка модифікувати наш код, враховуючи значення властивості Alignment поточної (тобто рисуемой в даний момент) колонки:
Відповідний код для Delphi має вигляд:
В цьому випадку вирівнювання тексту в колонках збігається з вирівнюванням стовпців.
Відзначимо, що величина зміщення (в даному випадку два пікселя), взагалі кажучи, залежить від гарнітури і розміру шрифту, який використовується в цій колонці, і повинна підбиратися індивідуально.
Якщо необхідно відобразити нестандартним чином не всю рядок, а тільки деякі осередки, слід проаналізувати ім'я поля, яке відображається в даній колонці, як у наведеному нижче обработчике подій.
Відповідний код для Delphi має вигляд:
В результаті виділеними виявляються тільки осередки, для яких виконуються обрані нами умови:
Як замінити дані в стовпці компонента TDBGrid
Нерідко в колонці DBGrid потрібно вивести не реальна значення, що зберігається в поле відповідної таблиці, а інші дані, відповідні наявним (наприклад, символьний рядок замість її числового коду). У цьому випадку також використовується метод TextOut властивості Canvas компонента TDBGrid:
Відповідний код для Delphi має вигляд:
Ще один приклад - використання значків з шрифтів Windings або Webdings як підставляється рядки.