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

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

Закрашивание записей в Gridе по условию [D7, XP]


Slow ©   (2009-05-06 12:40:00) 

Нужно в гриде закрашивать записи, где поле Date_end (формата даты) не заполнено.
вот текст процедуры, но не могу оформить условие IF:
if (Table1.FieldByName('date_end').value='') - не работает

procedure TFormVvod.DBGrid1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin

 with DBGrid1.Canvas do begin
if (Table1.FieldByName('date_end').value='')
and
not (gdFocused in State) then
begin
Brush.Color :=clred;
Font.Color :=clBlack;
FillRect(Rect);
TextOut(Rect.Left,Rect.Top,Column.Field.Text);
end
else
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

end;


Медвежонок Пятачок   (2009-05-06 14:17:00) [1]

кроме того, если в гриде 10 строк по 10 полей, то филдбайнейм у тебя вызывается 100 раз.
10 раз для дела, и 90 раз вхолостую


Медвежонок Пятачок   (2009-05-06 14:15:00) [2]

if (Table1.FieldByName('date_end').value is null) - не работает. Ошибка: Undeclared identifier 'null'

Все правильно. Ошибка.


Медвежонок Пятачок   (2009-05-06 14:14:00) [3]

а что это принципиально?

А переименуй TTable и сразу узнаешь.


Slow   (2009-05-06 13:17:00) [4]

>Игорь Шевченко ©   (06.05.09 13:11) [4]
Field type-DATE.


Игорь Шевченко   (2009-05-06 13:11:00) [5]


> if (Table1.FieldByName('date_end').value='')


А какого типа поле date_end ?


Slow   (2009-05-06 13:09:00) [6]

всё получилось.
if (OsnForma.Boll.FieldByName('date_end').asstring='').
Теперь вот другой вопрос.
как при заполнении этого поля сразу вызвать событие DBGrid1DrawColumnCell,чтобы запись в гриде перезакрасилась?


Slow   (2009-05-06 13:07:00) [7]

>Получить имя поля и поле через Column
а что это принципиально? обычно пишу так, но только не с полями формата даты - и всё работает.
А вот с датой нет.
>Если поле то что нам надо и если оно изнулл тогда ....
if (Table1.FieldByName('date_end').value is null) - не работает. Ошибка: Undeclared identifier 'null'


Медвежонок Пятачок   (2009-05-06 12:46:00) [8]

Table1 - лишнее
FieldByName - тоже лишнее

Получить имя поля и поле через Column
Если поле то что нам надо и если оно изнулл тогда ....


Наверх

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