Главная страница
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.008 c
15-1292854207
Делфиец
2010-12-20 17:10
2011.04.03
Является ли "свободное ПО" свободнораспостряняемым?


15-1292516874
Аня
2010-12-16 19:27
2011.04.03
Разработка файлового процессора


3-1256205403
Сергей
2009-10-22 13:56
2011.04.03
Почему Отказ в подкючении?


2-1294233741
mefodiy
2011-01-05 16:22
2011.04.03
Ошибки при миграции из D7 в D2010


15-1292311804
brother
2010-12-14 10:30
2011.04.03
Посоветуйте ИБП