![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите, пожалуйста, что не правильно: мне нужно окрасить в [D6, IB6.x]
Larisa © (2002-09-27 20:34:00)другой цвет строчки в DBGrid, соответствующие договорам, у которых истек срок действия, использую для этого обработчик события DrawColumnCell:
procedure TForm1.GridLigDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (GridLig.Columns[4].Field.AsDateTime>Date) then
TDBGrid(Sender).Canvas.Brush.Color:=cl3DLight;
if gdSelected in State then
begin
TDBGrid(Sender).Canvas.Brush.Color:= clHighLight;
TDBGrid(Sender).Canvas.Font.Color :=clHighLightText;
end;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
но окрашивания не происходит. Подскажите, пожалуйста, - где ошибка.
sniknik (2002-10-02 12:46:00) [1]посмотри в каком формате дату выдает AsDateTime может минуты мешают или даже просто бред выдает (если в базе хранится в формате не соответст. региональным установкам.)
просто переобразуй в строку обе даты (DateTimeToStr) и сравни.
Larisa (2002-10-02 11:34:00) [2]пробовала убирать на else
Т.е
end else TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
все равно окраски не происходит, если окрашиваю строки при выполнении другого условия, в котором условие типа:
FieldByName("Region").AsString <> "" - то все получается,
видимо, проблемы возникают если условие - типа:
Columns[4].Field.AsDateTime>Date
Помогите, пожалуйста, разобраться.
sniknik (2002-09-27 22:49:00) [3]procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with DBGrid1.Canvas do begin
if (ADODataSet1.FieldByName("Region").AsString <> "") and not (gdFocused in State) then
begin
Brush.Color := clLime;
Font.Color := clBtnText;
FillRect(Rect);
TextOut(Rect.Left+2, Rect.Top+2, Column.Field.Text);
end
else
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
NP-237 (2002-09-27 20:50:00) [4]A DefaultDrawColumnCell
пробовала убирать на else?
Т.е
end else TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;