Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.24;
Скачать: CL | DM;

Вниз

Подскажите, пожалуйста, что не правильно: мне нужно окрасить в   Найти похожие ветки 

 
Larisa   (2002-09-27 20:34) [0]

другой цвет строчки в 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;

но окрашивания не происходит. Подскажите, пожалуйста, - где ошибка.


 
NP-237 ©   (2002-09-27 20:50) [1]

A DefaultDrawColumnCell
пробовала убирать на else?
Т.е
end else TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;



 
sniknik ©   (2002-09-27 22:49) [2]

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;


 
Larisa   (2002-10-02 11:34) [3]

пробовала убирать на else
Т.е
end else TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
все равно окраски не происходит, если окрашиваю строки при выполнении другого условия, в котором условие типа:

FieldByName("Region").AsString <> "" - то все получается,

видимо, проблемы возникают если условие - типа:

Columns[4].Field.AsDateTime>Date

Помогите, пожалуйста, разобраться.


 
sniknik ©   (2002-10-02 12:46) [4]

посмотри в каком формате дату выдает AsDateTime может минуты мешают или даже просто бред выдает (если в базе хранится в формате не соответст. региональным установкам.)

просто переобразуй в строку обе даты (DateTimeToStr) и сравни.



Страницы: 1 вся ветка

Текущий архив: 2002.10.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
8-78543
пена
2002-06-24 17:26
2002.10.24
Как заставить MediaPlayer проигрывать в fullscreen режиме


1-78386
dix mod
2002-10-15 09:28
2002.10.24
Двоичные деревья


4-78730
oleg_er
2002-09-12 07:33
2002.10.24
управление DOS приложением


14-78584
Nox
2002-10-01 17:25
2002.10.24
<<<ПОМОГИТЕ>>>


1-78331
id_privin
2002-10-11 18:29
2002.10.24
Вопрос продвинутым мастерам ...