Главная страница
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.053 c
6-1101822516
Tor
2004-11-30 16:48
2005.02.13
Передача сложных типов данных (класс) в Web-сервисе


4-1103986628
uw
2004-12-25 17:57
2005.02.13
Настройка COM-порта


14-1106553247
Чеширский_Кот
2005-01-24 10:54
2005.02.13
WinAmp Remote Control


1-1107013494
rolex
2005-01-29 18:44
2005.02.13
А где находится диалог выбора папки?


1-1107250197
markers
2005-02-01 12:29
2005.02.13
Ini Files права доступа;)