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

Вниз

Закрашивание записей в Gridе по условию   Найти похожие ветки 

 
Slow   (2009-05-06 12:40) [0]

Нужно в гриде закрашивать записи, где поле 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 12:46) [1]

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

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


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

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


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

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


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


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


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


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

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


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

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

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


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

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

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


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

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



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
11-1201782909
Elec3C
2008-01-31 15:35
2009.06.21
А баг всё равно есть


2-1240933165
@!!ex
2009-04-28 19:39
2009.06.21
ShortString в С++


15-1239764963
UserInet777
2009-04-15 07:09
2009.06.21
Покритикуйте алгоритм авторизации


15-1239456757
{RASkov}
2009-04-11 17:32
2009.06.21
TIdFTP и Proxy


15-1239568612
Юрий
2009-04-13 00:36
2009.06.21
С днем рождения ! 13 апреля 2009 понедельник