Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

DBGrid, раскраска строчек   Найти похожие ветки 

 
avsam   (2005-01-28 16:50) [0]

Как ищменить DBGrid, чтоб в нем цвет строк чередовался?
Т.е. одна строка белая, вторая серая...


 
Shirson ©   (2005-01-28 17:09) [1]

Пишешь обработчик на DrawColumnCell например.
В нём смотришь, если строка четная, то красишь серым, если нет - белым.


 
avsam   (2005-01-28 17:17) [2]

Это понятно.
А как определить, четная или нечетная строка?


 
Shirson ©   (2005-01-28 17:43) [3]

RecNo не устраивает?

Тогда, на выбор:
1. Заведи переменную и при каждой обработке прибавляй к ней 1.
2. Вставь в запрос вычисляемое поле, которое будет выдавать порядковые номера или сразу чётность/нечётность.
3. Заведи отдельный StringList и копируй в него НД. При обработке IndrxOf даст порядковый номер.

Можно еще чего придумать.


 
Antonn ©   (2005-01-28 18:25) [4]


> 1. Заведи переменную и при каждой обработке прибавляй
> к ней 1.

зачем переменные?

procedure TFormConf.SG_STATUSDrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
var s:string;
begin
    if (ARow div 2)*2=(ARow) then begin
     SG_STATUS.Canvas.Font.Color  := clblack;
     SG_STATUS.Canvas.Brush.Color := clwhite;
    end else begin
     SG_STATUS.Canvas.Font.Color  := clwhite;
     SG_STATUS.Canvas.Brush.Color := clblack;
    end;
  SG_STATUS.Canvas.FillRect(Rect);
  SG_STATUS.Canvas.TextOut(Rect.Left, Rect.Top, SG_STATUS.Cells[ACol, ARow] );
end;
SG_STATUS - это у меня StringGrid
Надо это вместо баннера прилепить, чтоб виднее...


 
Gek1   (2005-01-28 18:34) [5]


> if (ARow div 2)*2=(ARow) then

if (ARow mod 2) = 0 then

так помоему быстрее. Мелочь но всетаки!


 
begin...end ©   (2005-01-28 18:39) [6]

Вы про функцию Odd не слышали?


 
Gek1   (2005-01-28 18:41) [7]


> begin...end

Склироз. :-) Действительно лучше Odd.


 
Antonn ©   (2005-01-28 18:46) [8]

Gek1   (28.01.05 18:34) [5]
Ага, если честно, про mod совсем забыл:( Стареем...

ЗЫ А ФАК вообще обновляется? Подобные вопросы уже замучили...


 
tazik ©   (2005-01-29 00:22) [9]

Я, например, делаю так:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (clientDataSet1.RecNo mod 2) = 0 then
 begin
   DBGrid1.Canvas.Brush.Color := $00FAF0EB;
   DBGrid1.Canvas.Font.Color := clNavy;
 end;

if gdSelected in State then
 begin
   DBGrid1.Canvas.Brush.Color := clHighlight;
   DBGrid1.Canvas.Font.Color := clHighlightText;
   DBGrid1.Canvas.Font.Style := [fsBold];
 end;

dbGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;


 
Johnmen ©   (2005-01-29 01:51) [10]

Любой поисковик+полосатый dbgrid


 
avsam   (2005-01-29 21:53) [11]

Решил проблему.
В DBGrid1DrawColumnCell для Grid пишем

if DBGrid1.Datasource.Dataset.RecNo mod 2 = 0 then
один цвет
else
другой.

Устроил именно RecNo. Счетчик не может работать, так как при скроллинге и при перелистывании получается неверно.



Страницы: 1 вся ветка

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
3-1105714432
beton
2005-01-14 17:53
2005.02.13
Файл MDE


3-1105970218
Shizuku
2005-01-17 16:56
2005.02.13
Временная таблица


1-1107142027
diabolik
2005-01-31 06:27
2005.02.13
Checkbox в ListView и обработка события


6-1101649449
Alexeyy
2004-11-28 16:44
2005.02.13
Интернет


4-1103806708
CrazyDog
2004-12-23 15:58
2005.02.13
Виртуальный диск с произвольным содержимым