|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите с DBGridEh
Вопрос заключатся в следующем!
Я использую в своем проекте DBGridEh и мне нужно Одни столбцы закрасить В другом изменить цвет шрифта. Я делаю так Код:
procedure TMain_Form.suiDBGridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); const clGreenMy = TColor($24EB07); clRedMy = TColor($7370FC); begin If Main_Vid_Type = 3 Then Exit; ////////////////////////////////////////////// with suiDBGrid.Canvas do begin if (Column.Field.Dataset.FieldbyName('Gorod_rajon').AsString <> '') then begin Brush.Color:=clGreenMy; Font.Color:=clRedMy; FillRect(Rect); TextOut(Rect.Right-2- TextWidth(Column.Field.Text), Rect.Top+2,Column.Field.Text) end; If Column.FieldName = 'KAN1' Then If Column.Field.Dataset.FieldbyName('KAN1').AsInteger <> 0 Then Begin suiDBGrid.Canvas.Brush.Color := clRedMy; suiDBGrid.Canvas.Font.Color := clRedMy; End Else Begin suiDBGrid.Canvas.Brush.Color := clGreenMy; suiDBGrid.Canvas.Font.Color := clGreenMy; End; If Column.FieldName = 'BOOT1' Then If Column.Field.Dataset.FieldbyName('BOOT1').AsInteger <> 0 Then Begin suiDBGrid.Canvas.Brush.Color := clRedMy; suiDBGrid.Canvas.Font.Color := clRedMy; End Else Begin suiDBGrid.Canvas.Brush.Color := clGreenMy; suiDBGrid.Canvas.Font.Color := clGreenMy; End; ///////////////////////////////////////////////////////////// suidbgrid.DefaultDrawColumnCell(rect,DataCol,Column,State); End; end; часть где я просто закрашиваю столбцы работает а вот с изменением шрифта и цвета не работает где я тут допустил ошибку?? Помогите !!! |
#2
|
|||
|
|||
Скорее всего, как и в обычном гриде, можно рисовать либо колонки, либо ячейки. Попробуй убрать рисование колонок (закраску) и проверить.
|
#3
|
|||
|
|||
Я пробовал ... результат тотже ... не могу понять где я допустил ошибку .. причем грубую .
|
#4
|
|||
|
|||
Кстати. в отладчике поставь "бряк" в этой процке и просто помотри, вообще туда заходит или нет.
|
#5
|
|||
|
|||
поставил ... захожу
|
#6
|
|||
|
|||
а не может вот это: suidbgrid.DefaultDrawColumnCell(rect,DataCol,Colum n,State); восстанавливать тобой измененные параметры. попробуй убрать эту строку и нарисовать ячейку самостоятельно.
|
#7
|
|||
|
|||
Когда убрал эту строку suidbgrid.DefaultDrawColumnCell(rect,DataCol,Colum n,State), то система запустилась ( с пустой таблицей) но когда вывожу значения в таблицу то выдает ошибку ACCESS VIOLATION at address 006A2AEC. READ OF ADdRESS 00000034
|