![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цветные ячейки в TDataBaseGrid? [D7, WinXP]
Артем К. © (2004-11-10 14:03:00)Здравствуйте, Мастера!
Подскажите пожалуйста, как закрасить ячейки красным цветом по определенному полю, если значения в другом поле удовлетворяют некоторому условию?
Заранее спасибо!
Артем К. (2004-11-11 16:07:00) [1]Наверное стоит объясниь чего я хочу сделать.
Есть поле - "дата" (11.11.2004 например);
Есть поле - "потребление" (число);
Мне нужно отобразить потребление красным цветом, если это выходной день.
Т.е. определяю по дате, что это за день недели, через функции:
day_date: TDateTime;
...
day_date := EncodeDate(year, month_index,day_index);
day_N := DayOfTheWeek(day_date);
...
Т.е. для субботы day_N = 6, а для воскресенья day_N = 7;
Как теперь отобразить значения по полю "потребление" красным цветом для выходных дней?
Fay (2004-11-10 15:37:00) [2]2 Артем К. (10.11.04 15:32) [2]
Сравнить Column.FieldName c 'LAST_NAME'
Артем К. (2004-11-10 15:32:00) [3]>>P.N.P.
В Вашем случае прорисовка пойдет по полю 'LAST_NAME', если значение будет 'Jones', а как сделать, чтобы если в поле 'FIRST_NAME' значение 'Jone', то поле 'LAST_NAME' отрисовать красным.
P.N.P. (2004-11-10 14:58:00) [4]Так например:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if TDBGrid(Sender).DataSource.DataSet.FieldByName('LAST_NAME').AsString='Jones' then
begin
TDBGrid(Sender).Canvas.Brush.Color:=clRed;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;