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

Вниз

Подскажите может кто-то сталкивался 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
2-1205851058
Vik
2008-03-18 17:37
2008.04.13
SQL, сетевой вариант


3-1195499499
Nucer
2007-11-19 22:11
2008.04.13
Работа с ADO


4-1186810295
Кирилл_А
2007-08-11 09:31
2008.04.13
bsToolWindow для WinApi


15-1204017202
Правильный_Вася
2008-02-26 12:13
2008.04.13
FireBird - альтернатива


15-1201783465
DevilDevil
2008-01-31 15:44
2008.04.13
Помогите компонентом-табличкой...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский