Всем доброго времени суток!
Продолжая разбираться с БД и компонентами, столкнулся со следующей проблемой:
при раскрашивании строк DBGrid через DBGridDrawColumnCell сам собою меняется цвет фона и текста в выделенной ячейке, причем меняется таким образом, что прочитать выделенный текст становится сложно, бледно, да и выглядит некрасиво. Каким образом можно задать свои цвета? Подозреваю, что через тот же метод, но тогда каким образом узнать координаты выделенной ячейки DBGrid? у меня ячейки выделяются отдельно, выделение целой строкой не делал.
Буду благодарен за любые наводки по теме.
Цвет выделения в DBGrid
Модератор: Модераторы
-
wwswowsogon
- постоялец
- Сообщения: 157
- Зарегистрирован: 23.12.2008 19:41:37
-
wwswowsogon
- постоялец
- Сообщения: 157
- Зарегистрирован: 23.12.2008 19:41:37
Да, спасибо! Был на этом сайте.
Но, думал, мб ест ьболее изящное решение.
Будем пробовать.
Но, думал, мб ест ьболее изящное решение.
Будем пробовать.
wwswowsogon писал(а):Да, спасибо! Был на этом сайте.
Но, думал, мб ест ьболее изящное решение.
Будем пробовать.
Куда уж изящнее
Там классический анализ столбца и строки. И если со столбцами все понятно, то к интерпретации строк всегда больше вопросов.
Некоторые возможности представляют сами компоненты-сетки (например, "полосатость грида", разные цвета фона/текста выделенных и не выделенных ячеек). Но все это довольно просто реализовать самому, тем более, что все уже описано давно
http://www.delphikingdom.com/asp/viewit ... alogid=168
-
wwswowsogon
- постоялец
- Сообщения: 157
- Зарегистрирован: 23.12.2008 19:41:37
Спасибо большое за советы!
Несмотря на то, что уже года два как периодически работаю с БД, до сих пор не могу привыкнуть, что логика DBGrid отличается от стандартного StringGrid. Это кажется противоестественным.
И про интерпретацию строк - да, правда. 
Несмотря на то, что уже года два как периодически работаю с БД, до сих пор не могу привыкнуть, что логика DBGrid отличается от стандартного StringGrid. Это кажется противоестественным.
-
YaroslavSh
- новенький
- Сообщения: 26
- Зарегистрирован: 21.07.2010 08:09:41
Добрый день. Чтоб не плодить темы, спрошу тут.

При раскрашивании таким методом, пропадают горизонтальные разделители строк, и все сливается в одну картинку, хотя вертикальные остаются. Ни как не могу их вернуть. Что для этого нужно сделать?
Код: Выделить всё
procedure TForm3.RxDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if RxDBGrid1.DataSource.DataSet.FieldByName('kolvo').AsFloat<=0 then begin
with RxDBGrid1.Canvas do begin
Brush.Color:=$00605BF4;
if gdSelected in State then begin
Brush.Color:= $00FFBF80;
Font.Color := clblack;
end;
FillRect(Rect);
end;
end;
RxDBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
При раскрашивании таким методом, пропадают горизонтальные разделители строк, и все сливается в одну картинку, хотя вертикальные остаются. Ни как не могу их вернуть. Что для этого нужно сделать?
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
YaroslavSh, вам лучше задать этот вопрос в тематическом разделе
viewforum.php?f=18
там автор RxDBGrid скорее его увидит
viewforum.php?f=18
там автор RxDBGrid скорее его увидит
-
YaroslavSh
- новенький
- Сообщения: 26
- Зарегистрирован: 21.07.2010 08:09:41
Спасибо, написал там.
