De obicei, metoda OnDrawColumnCell este utilizată pentru a reprograma o imagine în celule.
Parametrul său Rect este o structură care descrie celula ocupată de un dreptunghi; Parametrul coloanei este coloana DBGrid, în care trebuie să modificați modul în care este desenată imaginea. Executarea textului utilizează metoda TextOut a proprietății Canvas a componentei TDBGrid.
Să presupunem că trebuie să schimbăm culoarea textului și a fundalului liniei, în funcție de valoarea unui câmp (de exemplu, VenueNo). Creați un handler de evenimente OnDrawColumnCell pentru componenta DBGrid1.
În cazul Delphi, codul corespunzător este:
Ca rezultat, în stadiul de execuție, când se afișează liniile în care valoarea câmpului VenueNo este 1, fundalul celulelor va fi colorat verde, iar textul va fi afișat în alb.
La afișarea rândurilor selectate, toate datele din celule au apărut aliniate spre stânga. Dacă dorim să afișăm mai corect alinierea textului în coloană, trebuie să modificăm ușor codul nostru, ținând cont de valoarea proprietății Alignment a coloanei curente (adică cea în curs de elaborare):
Codul corespunzător pentru Delphi arată astfel:
În acest caz, alinierea textului în coloane coincide cu alinierea coloanelor.
Rețineți că valoarea offset (în acest caz doi pixeli), în general, depinde de dimensiunea fontului și dimensiunea fontului folosită în această coloană și ar trebui selectată individual.
Dacă doriți să nu afișați o linie întreagă într-un mod neobișnuit, ci doar câteva celule, ar trebui să analizați numele câmpului afișat în această coloană, ca și în procedura de tratare a evenimentelor de mai jos.
Codul corespunzător pentru Delphi arată astfel:
Ca rezultat, sunt selectate numai celulele pentru care sunt îndeplinite condițiile pe care le-am ales:
Cum se înlocuiesc datele din coloana componentei TDBGrid
De multe ori, în coloana DBGrid, nu trebuie să exportați valoarea actuală stocată în câmpul tabelului corespunzător, ci alte date corespunzătoare celor existente (de exemplu, un șir de caractere în loc de codul său numeric). În acest caz, se folosește de asemenea metoda TextOut a proprietății Canvas a componentei TDBGrid:
Codul corespunzător pentru Delphi arată astfel:
Un alt exemplu este folosirea icoanelor din fonturile Windings sau Webdings ca șir de substitute.