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

Вниз

Подскажите может кто-то сталкивался Column.Field.As<SomeThing>   Найти похожие ветки 

 
Pos Eleptant (c)   (2008-02-28 16:00) [0]

01: procedure TfrmJournalClaim.DBGridDrawColumnCell(tra-ta-ta)
02: var
03:   holdColor: TColor;
04: begin
05:     if Column.FieldName="UPD_STATUS" then
06:     if ((Column.Field.AsString) = "0") then
07:     begin
08:       dbgrid.canvas.Draw(Rect.Left, Rect.Top, 01: imgFlagEdit.Picture.Bitmap);
09:     end;
10:
11:
12:   holdColor := DBGrid.Canvas.Brush.Color; {сохраняем оригинальный 13: цвет}
14:   {"раскрашиваем" ячейки только для поля EmpNo}
15:   if Column.FieldName = "DATE_TAKE" then
16:     if ((Column.Field.AsDateTime) = Date) then
17:     begin
18:       DBGrid.Canvas.Brush.Color := clRed;
19:       DBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
20:       DBGrid.Canvas.Brush.Color := holdColor;
21:     end;
22:     if Column.FieldName = "DATE_TAKE" then
23:     if ((Column.Field.AsDateTime) = Date+1) then
24:     begin
25:       DBGrid.Canvas.Brush.Color := clGreen;
26:       DBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
27:       DBGrid.Canvas.Brush.Color := holdColor;
28:     end;

ну вроде правильно:

если закоментить строку 06 все нормально,иначе
Системная ошибка приложения по адресу 005CCCB3 в программе "WnX_CSklad.exe". Параметр: "Read" с адресами 00000000


 
Johnmen ©   (2008-02-28 16:04) [1]

Это значит, что есть колонка в дбгриде, не связанная ни с каким реальным полем набора данных. => Column.Field = nil


 
Pos Eleptant (c)   (2008-02-28 16:05) [2]

ан нет, проверил такая же ерунда, ПОЛЕ есть


 
Pos Eleptant (c)   (2008-02-28 16:07) [3]

все решил
Johnmen ©   (28.02.08 16:04) [1]

спасибо ОГРОМНОЕ!!!


 
Johnmen ©   (2008-02-28 16:07) [4]

Как проверил? Код.


 
Правильный_Вася   (2008-02-28 16:08) [5]


> Rect.Top, 01: imgFlagEdit.Picture.Bitmap

это че за фигня?


 
Ega23 ©   (2008-02-28 16:10) [6]

я бы посоветовал так делать
if UpperCase(Column.FieldName)="UPD_STATUS" then
В DBGridEh без UpperCase сравнение не прокатит.

По сабжу: а что будет, если:

if Column.FieldName="UPD_STATUS" then
if ((DBGrid.DataSource.DataSet.FieldByName("UPD_STATUS").AsString) = "0") then
    begin
      dbgrid.canvas.Draw(Rect.Left, Rect.Top, 01: imgFlagEdit.Picture.Bitmap);
    end;


?


 
Johnmen ©   (2008-02-28 16:15) [7]


> Ega23 ©   (28.02.08 16:10) [6]

Приведение к единому регистру конечно надо.
Но дело в корне в том, что проверять сначала надо на существование поля вообще. Т.к. FieldName то может быть <> "", а Field = nil.


 
Ega23 ©   (2008-02-28 16:18) [8]


> Но дело в корне в том, что проверять сначала надо на существование
> поля вообще. Т.к. FieldName то может быть <> "", а Field
> = nil.


Ну это даже не обсуждается...  :)



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
2-1205773230
Dima
2008-03-17 20:00
2008.04.13
Не могу разобраться с кодом.Помогите ПОЖАЛУЙСТА!!!


2-1205839489
alex810
2008-03-18 14:24
2008.04.13
SQL запрос


2-1206042597
Studios
2008-03-20 22:49
2008.04.13
httpcli1 как загрузить jpeg ?


2-1205497768
Некто
2008-03-14 15:29
2008.04.13
Иконка приложения


15-1204184372
Kerk
2008-02-28 10:39
2008.04.13
Прекрасное далёко...