Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Dbgrideh и курсор-прямоугольник


Автор: caskad 14.7.2006, 09:19
Здравствуйте.
При изменении цвета текста текста в dbgrideh (при определенном условии) на красный и при перемещении курсора-прямоугольника (синенький такой) читаемость очень ухудшается. (Например, представьте красный или зеленый текст на синем фоне). Где то подсознанием понимаю, что дело в системных цветах Винды, но из-за малого опыта совсем замучался. Помогите пожалуйста.
Изменение цвета реализуется 

         DBGrideh1.Canvas.Font.Color:=clred;
         DBGrideh1.DefaultDrawDataCell(Rect,DBGrideh1.Fields[datacol],State);
на DBGridEh1DrawColumnCell.

Заранее благодарен. 

Автор: kulikoff 14.7.2006, 10:08
Для отдельных ячеек можно изменять значение:
<code='Delphi'>
procedure TForm3.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh;
  AFont: TFont; var Background: TColor; State: TGridDrawState);
begin
  DBGridEh1.OptionsEh:=DBGridEh1.OptionsEh+[dghRowHighlight];
  if odd(DBGridEh1.SumList.RecNo) then
    begin
      Background:=$00FFC4C4;
    end
  else
    begin
      Background:=$00FFDDDD;
    end;
  if Column.Field.DataSet.Fields[0].AsInteger>2 then
    begin
      Background:=clRed;
    end;                   
end;
</code>

 

Автор: caskad 14.7.2006, 10:31
Нужно именно цвет текста в гриде красный и зеленый. Не цвет ячейки. Здорово было бы поменять этот самый курсор и реализовать вместо закрашивания синим просто темную оконтовку вокруг выделенной ячейки. Так реализовано в excel'е. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)