PDA

Visualizza la versione completa : DBGrid & Colori [Delphi]


FatMax
09-04-2003, 16:47
...ho un problema con la dbgrid...
devo colorare 1 sola riga, non tutte le righe di una colonna ma 1 singola e totale riga.

Non riesoc a trovare nulla di utile :dh: , grazie in anticipo.

FatMax
10-04-2003, 12:19
up :ciauz:

alka
10-04-2003, 12:57
Devi intercettare l'evento OnDataDrawColumnCell che ti permette di intervenire sulla griglia durante il tracciamento delle singole celle e del loro contenuto.

Quando intercetti questo evento, devi provvedere a tracciare "manualmente" il contenuto della cella in base al risultato che ti sei prefissato.

Aggiungo codice di esempio:


procedure TForm1.DBGrid1DataDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
case DataCol of
0:
begin
if Column.Field.AsString = 'T' then
DBGrid1.Canvas.Brush.Color := clRed
else
DBGrid1.Canvas.Brush.Color := clWindow;
DBGrid1.Canvas.FillRect(Rect);
end;
end;
end;


Il codice riportato qui sopra interviene nel tracciamento della colonna 0 (zero), cio della prima colonna della griglia, selezionando un colore per lo sfondo della cella che dipende dal valore contenuto all'interno del campo associato alla colonna stessa; successivamente, provvede a riempire l'area della cella con il colore. E' possibile visualizzare del testo usando il metodo TextRect (o in alternativa TextOut) dell'oggetto Canvas.

Ci sono degli esempi anche nella Guida in linea di Delphi, raggiungibili dall'argomento corrispondente che contiene istruzioni sull'evento.

Ciao! :ciauz:

Loading