![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цветной 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;