![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Ребята всем привет  
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	уже который день мучаюсь не могу понять как заставить этот компонент поменять цвет строки в зависимости от значения в ячейке у компонента нету события DrawColumnCell но есть DrawCell весь интернет обошел но не нашел метод как можно поменять цвет строки для события DrawColumnCell код выглядел так Код: 
	  if (Sender as TDBGrid).DataSource.DataSet.FieldByName('fZero').AsInteger=1 then
    Canvas.Brush.Color:=clRed;
  DefaultDrawColumnCell(Rect, DataCol, Column, State);но как у компонента TDBAdvGrid справится с такой проблемой??  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
   Проприетарной поделки этой не видел, поэтому точно не знаю, извнт, но раз такое дело, может прокатит вариант как для StringGrid, вот пример из drkb:Код: 
	procedure TfrmMain.StringGrid1DrawCell(Sender: TObject; ACol, ARow: integer;
 Rect: TRect; State: TGridDrawState);
Const   //здесь определяем цвета.
clPaleGreen = TColor($CCFFCC);
clPaleRed =   TColor($CCCCFF);
begin
//Если ячейка получает фокус, то закрасить её другими цветами
if (gdFocused in State) then begin
  StringGrid1.Canvas.Brush.Color := clBlack;
  StringGrid1.Canvas.Font.Color := clWhite;
end
else //Если же ячейка теряет фокус, то закрашиваем её красным и зелёным
  if StringGrid1.Cells[ACol, ARow] = '2' then
StringGrid1.Canvas.Brush.color := clPalered
else
StringGrid1.canvas.brush.Color := clwhite;
//Теперь закрасим ячейки, но только, если ячейка не Title- Row/Column
//Естевственно это завит от того, есть у Вас title-Row/Columns или нет.
If (ACol > 0) and (ARow>0) then
begin
     //Закрашиваем бэкграунд
   StringGrid1.canvas.fillRect(Rect);
    //Закрашиваем текст (Text). Также здесь можно добавить выравнивание и т.д..
   StringGrid1.canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);
end;
end;З.Ы. Тут на одном форуме подсказали что у DBAdvGrid за это отвечает событие OnGetCellColor и в нём должно быть такое Код: 
	... with (Sender as TDBAdvGrid) do if Cells[ACol,ARow] = '1' then ABrush.Color:= clYellow else ABrush.Color:= clGreen; ...  | 
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
 
Electronic_Arts (07.06.2014)
  | ||
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Спасибо заработал  
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	with (Sender as TDBAdvGrid) do if Cells[12,ARow] = '0' then If (ARow>0) then ABrush.Color:= clYellow else ABrush.Color:= clwhite;  |