Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выделение цветом определенной строки в DBGrid [D6, MSSQL, MySQL]


Ryser ©   (2002-11-04 11:26:00) 

Знатоки! Подскажите!


Ryser   (2002-11-04 11:57:00) [1]

Огромное спасибо всем! Очень хорошая инф-ция!


Kudatsky   (2002-11-04 11:52:00) [2]

Посмотри сюда:
http://www.infocity.kiev.ua/prog/delphi/content/delphi030.phtml?id=1014


alexr   (2002-11-04 11:50:00) [3]

Это очень просто нужно в свойстве компонента DBGrid OnDrawColumnCells прописать следующую процедуру:
(в примере в качестве источника данных используется компонент TTable с именем Oborud) процедура изменяет цет строки (заливку, а также цвет и другие параметры шрифта) в DBGrid в зависимости от значения поля.

procedure DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
IF (Oborud.FieldByName("Tip").Value="КОМПЬЮТЕР") Then
Begin
with DBGrid1.Canvas do
Begin
Brush.Color:= clFuchsia;
Font.Color:=clBlack;
Font.Style:=[fsBold];
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
End;
End
Else
IF (Oborud.FieldByName("Tip").Value="Монитор") Then
Begin
with DBGrid1.Canvas do
Begin
Brush.Color:= clMoneyGreen;
Font.Color:=clBlack;
Font.Style:=[fsBold];
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
End;
End
Else
IF (Oborud.FieldByName("Tip").Value="Принтер") Then
Begin
with DBGrid1.Canvas do
Begin
Brush.Color:= clGradientActiveCaption;
Font.Color:=clBlack;
Font.Style:=[fsBold];
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
End;
End
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо