Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Раскраска DBGrid, Неправильно раскрашивает 
:(
    Опции темы
Waterman
Дата 9.5.2007, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Дл раскрашивания строк BGrid в Delphi 6 применил такую процедуру:
Код

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);

 begin

 IF DBGrid1.DataSource.DataSet.RecNo mod 2 = 1 Then
  begin
    DBGrid1.Canvas.Font.Color := clBlack;
    DBGrid1.Canvas.Brush.Color:= clCream;

  end;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;
 
Но почему-то нет периодичности закрашивания. Красит безсистемно, хотя должна чередовать чётные и нечётные. В чём ошибка. 
PM MAIL   Вверх
Waterman
Дата 9.5.2007, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Пробовал вот так:
Код

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);

 begin
with DBGrid1.Canvas do
begin
if odd(Table1.RecNo) then Brush.Color := clSilver else Brush.Color :=
clBlue;
FillRect(Rect);
end;

DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;


Ситуация повторилась. Непонятно.  smile 
PM MAIL   Вверх
Waterman
Дата 11.5.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Нашёл в чём проблема. Если производиться сортировка записей типа:
Код

Table1.IndexName :=('Num');

нарушается последовательность раскраски строк. Как можно решить эту проблемку. Хочется, чтобы таблицы выглядели посимпатичнее. Но сортировка нужна.

Это сообщение отредактировал(а) Waterman - 11.5.2007, 08:30
PM MAIL   Вверх
Waterman
Дата 30.5.2007, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Как можно дополнить эту процедуру, что бы происходила закраска не только первой колонки, но и двух других. Но в них значения строковые.
Код

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
  var holdColor: TColor;

  begin
 holdColor := DBGrid1.Canvas.Brush.Color; 
  if Column.FieldName = 'kln'  then
  if (Column.Field.AsInteger mod 2 <> 0) then

    begin
      DBGrid1.Canvas.Brush.Color := clWhite;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      DBGrid1.Canvas.Brush.Color := holdColor;

    end;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.