Главная страница
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.016 c
2-1205950865
Alex_C
2008-03-19 21:21
2008.04.13
Сохранение св-ва компонента


2-1205845556
Adios
2008-03-18 16:05
2008.04.13
сообщения в программу по сети


15-1204040112
@!!ex
2008-02-26 18:35
2008.04.13
Почему данные не уходят через WinSock.Send?


2-1205923008
Pavelkq
2008-03-19 13:36
2008.04.13
OnRightClick для CheсkListBox


2-1205745505
k@te4ka
2008-03-17 12:18
2008.04.13
указатель в процедуре