[ yiwan @ 12.12.2008. 10:56 ] @

O ovoj temi je vec bilo reci ali prethodni postovi mi nisu pomogli.

Hocu da naizmenicno obojim DBGrid ali mi dbGrid2.DataSource.DataSet.RecNo uvek vraca -1, pa to ne mogu da koristim kao kriterijum za promenu boje.

Podaci se nalaze u Query1 a probao sam i sa Query1.RecNo i isto.

Query1 nije prazan jer vec menjam boju fonta u DBGridu, ali u zavisnosti od vrednosti polja, i to radi.

Koristim Delphi5 ako je to od neke vaznosti.
[ savkic @ 12.12.2008. 15:23 ] @
Code:


type
  TMyDBGrid = class(TDBGrid);

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if Odd(TMyDBGrid(DBGrid1).DataLink.ActiveRecord) then
    DBGrid1.Canvas.FillRect(Rect);
end;

[ yiwan @ 15.12.2008. 07:02 ] @

Hvala na odgovoru.

Ovo sada radi dosta bolje.
Jedino kad selektujem neki neparan red vise nemam onu plavu liniju za selektovanu vrstu, jer je verovatno ovim nacinom prefarbam.
Moze li nekako da i ona ostane?
[ savkic @ 15.12.2008. 11:05 ] @
> Jedino kad selektujem neki neparan red vise nemam onu plavu liniju za selektovanu vrstu, jer je verovatno ovim nacinom prefarbam.

Možeš ali je moraš sam iscrtati, pomoću State parametra možeš videti kada je ćelija selektovana i tada promeni boju ćelije i na kraju iscrtaj tačkasti rect oko ćelije (koristi DrawFocusRect). Biće ti najlakše ako pogledaš kako je to urađeno u DBGridu, metoda je DrawCell.