Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

полосотый DBGrid


kaktus ©   (2004-11-23 18:31:00) 

Доброе время суток мастера!
А как мне замутить полосатый грид, т.е. одна строчка одним цветом, а другая другим.


Piter   (2004-11-23 22:22:00) [1]

Вопрос: как раскрасить отдельные строки/столбцы в TDBGgrid

Ответ: нужно обработать событие OnDrawColumnCell, которое возникает при отрисовке ячейки:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
 Grid: TDbGrid;
begin
 Grid := Sender as TDBGrid;
 if (Grid.DataSource.DataSet.RecNo mod 2) = 0 then
   Grid.Canvas.Brush.Color := clRed
 else if (DataCol mod 2) = 0 then
   Grid.Canvas.Brush.Color := clGreen;
 Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;


В результате, каждая вторая строка раскрашивается в красный цвет, а у каждой первой строки каждый первый столбец раскрашивается в зеленый цвет.

При этом стоит сделать:

DBGrid1.DefaultDrawing := False;- чтобы не раскрашивался два раза подряд

Отвечал: Jack128


begin...end   (2004-11-23 18:38:00) [2]


> kaktus   (23.11.04 18:31)

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168


Наверх

Титульная страница Поиск, карта сайта Написать письмо