Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];

Вниз

Закрашивание записей в 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;
Скачать: [xml.tar.bz2];

Наверх




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


2-1240930943
granddad
2009-04-28 19:02
2009.06.21
Методы контроля своевременного освобождения памяти


2-1241196392
Александр7
2009-05-01 20:46
2009.06.21
Как присвоить адрес файла переменной


2-1241037428
бульдозер
2009-04-30 00:37
2009.06.21
как зная ID процесса получить хендл окна этого процесса


13-1124000957
cherrex
2005-08-14 10:29
2009.06.21
COM и .NET





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский