Grazie
2) usare l'evento OnDrawColumnCell dopo aver impostato la prop
DefaultDrawing a False.
Bye
A.
Ciao
"Alberto Salvati" <alsa...@supereva.it> ha scritto nel messaggio
news:b0j3re$29f0$1...@newsreader1.mclink.it...
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:
TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
holdColor: TColor;
begin
holdColor := DBGrid1.Canvas.Brush.Color; {store the original color}
if Column.FieldName = 'EmpNo' then {only do for the cell displaying
EmpNo}
if (Column.Field.AsInteger mod 2 <> 0) then begin
DBGrid1.Canvas.Brush.Color := clGreen;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
DBGrid1.Canvas.Brush.Color := holdColor;
end;
end;
l'ho preso da:
http://www.gnomehome.demon.nl/uddf/
Bye
A.
se vai su qualche sito di faq ne trovi vari esempi.
> come faccio a decidere di colorare una riga???
in base a una condizione IF stabilita da te..
Ciao.
Quindi, il principio č:
non me ne frega niente di quale colonna č.
se per quel record il valore di quel particolare campo č x, voglio tutta la
riga in rosso
se per quel record il valore di quel particolare campo č y, voglio tutta la
riga in blu
Ora, leggi il codice che ti ho postato...
Trovi sia conforme a cio che ti serve?
Vedi che esiste un punto preciso nel quale devi intervenire?
Un piccolo sforzo e ci arrivi di sicuro..
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:
TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
holdColor: TColor;
begin
holdColor := DBGrid1.Canvas.Brush.Color; {store the original color}
if Column.FieldName = 'EmpNo' then {only do for the cell displaying
EmpNo}
if (Column.Field.AsInteger mod 2 <> 0) then begin
DBGrid1.Canvas.Brush.Color := clGreen;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
DBGrid1.Canvas.Brush.Color := holdColor;
end;
end;
Bye
A.
if DataMod.TAgenti.FieldByName('NonAttivo').AsBoolean = True
then GridAgenti.Canvas.Brush.Color := clRed //colore righe non attive
else GridAgenti.Canvas.Brush.Color := clWhite; //colore righe attive
GridAgenti.DefaultDrawColumnCell(Rect, DataCol, Column, State);
GridAgenti.Canvas.Brush.Color := clblue;
Grazie mille :)))))))
>
Grande!
Ma si può scrivere la stessa cosa in modo, imho, + leggibile:
var
ColoreRiga: TColor;
With TDbgrid(Sender) do begin
if Datasource.Dataset.FieldByName('NonATtivo').AsBoolean then
ColoreRiga := clRed
else
ColoreRiga := clWhite;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
Canvas.Brush.Color := clblue;
end;
Bye
A.
Ma poi hai risolto questo problema?
Grazie in anticipo!
RLB
--------------------------------
Inviato via http://usenet.libero.it
Ho RISOLTO !!!!!!!!!!!!!!!!