Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.03;
Скачать: CL | DM;

Вниз

DBGridEh теряет расцветку   Найти похожие ветки 

 
kyn66 ©   (2009-08-28 13:26) [0]

Уважаемые мастера, помогите разобраться. Для расцветки своего грида использую следующий код:


Const
 BackColors : array[Boolean] of TColor = (clWhite, clBtnFace);

...

procedure TMainFrm.DBGridEh1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumnEh;
 State: TGridDrawState);
begin
 With TDBGridEh(Sender) do
  begin
    if (Rect.Top = CellRect(Col, Row).Top) then
     begin
       Canvas.Brush.Color := clMoneyGreen;
       Canvas.Font.Color := clBlack;
       Canvas.Font.Style := [fsBold];
       DefaultDrawColumnCell(Rect,DataCol,Column,State);
     end;
  end;
end;

...

procedure TMainFrm.DBGridEh1GetCellParams(Sender: TObject;
 Column: TColumnEh; AFont: TFont; var Background: TColor;
 State: TGridDrawState);
begin
 Background := BackColors[(Sender as TDBGridEh).DataSource.DataSet.RecNo mod 2 <> 0];
end;


Когда грид прокручивается в вертикальной плоскости, то все нормально. http://yurec66.narod.ru/Vopros/vop1.jpg . Стоит только щелкнуть по скролу вправо, чтобы увидеть спрятанные за правым краем поля, то цветность грида нарушается. http://yurec66.narod.ru/Vopros/vop2.jpg . Вернувшись обратно влево, все снова восстанавливается http://yurec66.narod.ru/Vopros/vop1.jpg . Чтобы это значило? Возможно не совсем верно выбрано событие обработки грида?


 
KilkennyCat ©   (2009-08-28 13:38) [1]

событие верно.
происходит выделение строки.
создайте более одной строки, чтобы видеть разницу.
привет Эхлибу.


 
KilkennyCat ©   (2009-08-28 13:40) [2]

добавлю, что Ваш код не предусматривает раскрашивание строки в состоянии selected


 
kyn66 ©   (2009-08-28 13:48) [3]


> создайте более одной строки, чтобы видеть разницу.


А что это даст. ? СОздал еще 4  строки - разницы нет. При сдвиге вправо - разрисовка пропадает.


 
KilkennyCat ©   (2009-08-28 13:49) [4]

и все становятся синими?


 
kyn66 ©   (2009-08-28 13:55) [5]

Да http://yurec66.narod.ru/Vopros/vop3.jpg
http://yurec66.narod.ru/Vopros/vop4.jpg


 
Медвежонок Пятачок ©   (2009-08-28 14:10) [6]

Background := BackColors[(Sender as TDBGridEh).DataSource.DataSet.RecNo mod 2 <> 0];

А зачем это, и тем более замешанное на рекно?
Полосатость ехгрид и сам умеет поддерживать без пользовательского кода


 
KilkennyCat ©   (2009-08-28 14:10) [7]


> TGridDrawState

http://www.delphimaster.ru/articles/stringgrid/index.html
[2] считать неверным

> if (Rect.Top = CellRect(Col, Row).Top) then

заменить на нормальное, учитывая выше свойство и ссылку


 
KilkennyCat ©   (2009-08-28 14:12) [8]


> СОздал еще 4  строки - разницы нет. При сдвиге вправо -
> разрисовка пропадает.

Разница есть. видно, что разрисовка пропадает только у ячеек в состоянии gdSelected


 
kyn66 ©   (2009-08-28 14:48) [9]


> Разница есть. видно, что разрисовка пропадает только у ячеек
> в состоянии gdSelected


Точнее сказать у "активного окна" А строка как была gdSelected так ею и осталась. Здесь что-то другое Почему-же при сдвиге влево все возвращается обратно к нормальному виду?. Раньше, как вариант, я полностью раскрытый на всю ширину грид помещал на ScrollBox и был задействован именно его скрол. Тогда се было нормально.


 
kyn66 ©   (2009-08-28 14:56) [10]


> А зачем это, и тем более замешанное на рекно?Полосатость
> ехгрид и сам умеет поддерживать без пользовательского кода


Это осталось еще от применения к обычным гридам. Можно и не использовать, а воспользоваться Sequenced


 
Медвежонок Пятачок ©   (2009-08-28 14:57) [11]

А строка как была gdSelected так ею и осталась.

Откуда вот так сразу вся строка? Всего лишь одна ячейка.


 
kyn66 ©   (2009-08-28 15:24) [12]


> Откуда вот так сразу вся строка? Всего лишь одна ячейка.


Нет, вся строка, так как у грида выставлены свойства dgRowSelect



Страницы: 1 вся ветка

Текущий архив: 2011.04.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1292275795
Юрий
2010-12-14 00:29
2011.04.03
С днем рождения ! 14 декабря 2010 вторник


2-1292273998
mahab-22
2010-12-13 23:59
2011.04.03
Получение имени программы по хендлу окна


3-1254997267
vturkevich
2009-10-08 14:21
2011.04.03
Запись данных в подченненую табл SQL-запросом


11-1213908689
Dy1
2008-06-20 00:51
2011.04.03
ToolBar


2-1294216275
zd
2011-01-05 11:31
2011.04.03
модальное окно