![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Вопрос заключатся в следующем! 
		
	
		
		
		
		
		
	
		
		
	
	
	Я использую в своем проекте 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 
		
	
		
		
		
		
		
	
		
		
	
	
	 |