...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, grazie in anticipo.
...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, grazie in anticipo.
FatMax
Italian Programmer
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:
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.codice: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;
Ci sono degli esempi anche nella Guida in linea di Delphi, raggiungibili dall'argomento corrispondente che contiene istruzioni sull'evento.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...