Текущий архив: 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.46 MB
Время: 0.007 c