Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c