Problem dotyczy komponentu DBGrid.

Probuję pokolorować co drugi wiersz oraz zmienić wygląd belki okreslającej, ktory wiersz jest zaznaczony.
Tabela powiązana z siatka ma pole "Autonumeracja" - o wlasności autoincrease, ktore to pole jest wykorzystywane do tego, czy wiersz ma byc zakolorowany (jeśli ma numer parzysty - to koloruje, jesli nie - top zostawiam w spokoju).

W tym celu obsługuję zdarzenie ONDrawColumnCell i umieszczam tam następujący kod:

procedure TOknoGlowne.DBGrid_towaryDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);

var a:byte;
b:byte;

begin;
//w co drugim wierszu zmieniam kolor
if State&lt&gt[gdSelected] then *jesli wiersz nie jest akurat zaznaczony
begin;
*i jesli jego numer jest parzysty....
if ModulDanych.Table_towary.FieldByName('Autonumeracja').AsInteger mod 2 = 0 then
begin;
*to zmieniam kolor tla i liter
DBGrid_towary.canvas.brush.color:=clInfoBK;
DBGrid_towary.canvas.font.color:=clBlack;
end;
end;

if State=[gdSelected] then *jesli wiersz jest zaznaczony - to zmieniam domyslne kolory zaznaczenia na inne
begin;
DBGrid_towary.canvas.brush.color:=clBackground;
DBGrid_towary.canvas.font.color:=clWhite;
end;

DBGrid_towary.DefaultDrawDataCell(Rect,Column.Field,State);
end;

kod dziala, ale pojawia sie problem:
NIC SIĘ NIE ZMIENIA W KOLORZE PIERWSZEJ WYŚWIETLANEJ KOLUMNY !!! (DataCol=0).

DLACZEGO ? JAK TO POPRAWIĆ ?!!!

Login :[[ --Login