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

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

Цветной DBGrid [D7, WinXP]


lmz ©   (2005-09-11 18:30:00) 

Как сделать разноцветные строки в DBGrid'е через одну?


Big Joe   (2005-09-12 16:56:00) [1]

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:
 TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
 holdColor: TColor;
begin
 holdColor := DBGrid1.Canvas.Brush.Color; {сохраняем оригинальный цвет}
 {"раскрашиваем" ячейки только для поля EmpNo}
 if Column.FieldName = 'EmpNo' then
   if (Column.Field.AsInteger mod 2 <> 0) then
   begin
     DBGrid1.Canvas.Brush.Color := clGreen;
     DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     DBGrid1.Canvas.Brush.Color := holdColor;
   end;
end;


Наиль   (2005-09-12 08:53:00) [2]

Вместо X mod 2 = 1
лучше писать odd(X)
Так и короче и работает быстрей.


Сайбель Алексей   (2005-09-12 08:43:00) [3]


> Нет. По крайней мере в 3.2. Кусок брал из примеров,
> которые с ним идут.


Это св-во добавлено в 3.6:

В TDBGridEh
...Добавлены свойства OddRowColor и EvenRowColor для вывода четных и нечетных строк различными цветами. Это работает только когда DataSet поддерживает нумерацию записей (DataSet.IsSequenced = True) и DataSet.RecNo возвращает правильную информацию...


Дмитрий Белькевич   (2005-09-12 03:47:00) [4]

>Для DBGridEh'а сть свойство OddRowColor ;)
Нет. По крайней мере в 3.2. Кусок брал из примеров, которые с ним идут.


jack128   (2005-09-11 19:47:00) [5]

Дмитрий Белькевич   (11.09.05 19:14) [2]
Для DBGridEh'а сть свойство OddRowColor ;)


lmz   (2005-09-11 19:47:00) [6]

Спасибо за помощь!!!!!


Дмитрий Белькевич   (2005-09-11 19:14:00) [7]

Для DBGridEh'а:

procedure DBGridEh4GetCellParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
if TDBGridEh(Sender).SumList.RecNo mod 2 = 1 then
 Background := $00FFFFFF
else
 Background := $00EDEDED;
end;


Alpine   (2005-09-11 19:13:00) [8]

procedure TTRF_Country.dbGridDrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumnEh;
 State: TGridDrawState);
Begin
 if (Query.RecNo) mod 2 =0 then begin
    With DBGrid1.Canvas do begin
      Brush.Color:=clMaroon;
       Font.Color:=clWhite;
        FillRect(Rect);
       if (Column.Alignment=taRightJustify) then
    TextOut(Rect.Right-2-  TextWidth(Column.Field.Text),
  Rect.Top+2,Column.Field.Text)
else
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
end;
end;


Наверх

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