Цвет выделения в DBGrid

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
wwswowsogon
постоялец
Сообщения: 157
Зарегистрирован: 23.12.2008 19:41:37

Цвет выделения в DBGrid

Сообщение wwswowsogon »

Всем доброго времени суток!
Продолжая разбираться с БД и компонентами, столкнулся со следующей проблемой:
при раскрашивании строк DBGrid через DBGridDrawColumnCell сам собою меняется цвет фона и текста в выделенной ячейке, причем меняется таким образом, что прочитать выделенный текст становится сложно, бледно, да и выглядит некрасиво. Каким образом можно задать свои цвета? Подозреваю, что через тот же метод, но тогда каким образом узнать координаты выделенной ячейки DBGrid? у меня ячейки выделяются отдельно, выделение целой строкой не делал.

Буду благодарен за любые наводки по теме.
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

wwswowsogon
постоялец
Сообщения: 157
Зарегистрирован: 23.12.2008 19:41:37

Сообщение wwswowsogon »

Да, спасибо! Был на этом сайте.
Но, думал, мб ест ьболее изящное решение.

Будем пробовать.
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

wwswowsogon писал(а):Да, спасибо! Был на этом сайте.
Но, думал, мб ест ьболее изящное решение.

Будем пробовать.

Куда уж изящнее :)

Там классический анализ столбца и строки. И если со столбцами все понятно, то к интерпретации строк всегда больше вопросов.

Некоторые возможности представляют сами компоненты-сетки (например, "полосатость грида", разные цвета фона/текста выделенных и не выделенных ячеек). Но все это довольно просто реализовать самому, тем более, что все уже описано давно
http://www.delphikingdom.com/asp/viewit ... alogid=168
wwswowsogon
постоялец
Сообщения: 157
Зарегистрирован: 23.12.2008 19:41:37

Сообщение wwswowsogon »

Спасибо большое за советы!
Несмотря на то, что уже года два как периодически работаю с БД, до сих пор не могу привыкнуть, что логика DBGrid отличается от стандартного StringGrid. Это кажется противоестественным. :) И про интерпретацию строк - да, правда. :)
YaroslavSh
новенький
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Сообщение YaroslavSh »

Добрый день. Чтоб не плодить темы, спрошу тут.

Код: Выделить всё

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 скорее его увидит
YaroslavSh
новенький
Сообщения: 26
Зарегистрирован: 21.07.2010 08:09:41

Сообщение YaroslavSh »

Спасибо, написал там.
Ответить