![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Полосатый TDBGridEh [D7, ADS]
kyn66 © (2009-05-18 16:42:00)Доброго времени суток, мастера. На форме лежит TDBGridEh. По идее он должен иметь возможность самостоятельно рисоваться полосатым. Однако это не происходит. Какое условие должно выполняться, чтобы он рисовался полосатым? Если устанавливаю OddRowColorв свой цвет - ничего не происходит. Обычно для отрисовки полосатости привязываюсь к таблице. Но это гладко проходит, если используется компонент TTable.
procedure TTovarFrm.DBGridEh1GetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
if (DM1.TovarTbl.RecNo mod 2 <> 0) then
Background := clWhite
else
Background := clBtnFace;
end;
В данном случае задейсвован TQuery. А с ним есть проблемы, используя данный метод. Полосатость может нарушиться.
Александр из Перми (2009-05-20 22:15:00) [21]возникает такой же вопрос вкупе с датасетом из FIBPlus.
Почему то корректно прорисовывает только если :
1) все строки вмещаются в видимую часть грида
2) если проскроллировать до низу, а потом делать скролл вверх, то за курсором начинает прорисовываться
3) Если выбрать все записи по FetchAll
Считаю все три способа корявыми, а как же правильно делать то?
AndreyV (2009-05-19 17:59:00) [22]> [5] Ega23 © (19.05.09 16:54)
> Всё просто. TDataSet.RecNo - штука такая. Неопределённая.
И переопределённая.:)
Виталий Панасенко (2009-05-19 16:59:00) [23]
> kyn66 © (19.05.09 16:10) [3]
>
> Не работает, для TQuery идет сбой в очередности полос-зебры.
>
А зачем применять СВОЙ метод, если есть готовый у EhLib? и выполняется условие
> It works only if sequence numbers are available for DataSet(DataSet.
> IsSequenced = True) and DataSet.RecNo return valid info
?
Ega23 (2009-05-19 16:54:00) [24]
> Не работает, для TQuery идет сбой в очередности полос-зебры.
Всё просто. TDataSet.RecNo - штука такая. Неопределённая. Зависит от многих вещей.
Сергей М. (2009-05-19 16:27:00) [25]А поставить брейкпойнт на строчку
if (DM1.TovarTbl.RecNo mod 2 <> 0) then
и посмотреть под отладчиком, чему же на самом деле равен RecNo, Коран не позволяет ?
kyn66 (2009-05-19 16:10:00) [26]Не работает, для TQuery идет сбой в очередности полос-зебры.
kyn66 (2009-05-18 17:13:00) [27]ДА, действительно так работает. Спасибо. Посмотрим как в дальнейшем будет отрабатывать при большем кол-ве записей.
Виталий Панасенко (2009-05-18 16:54:00) [28]Справка, выдержка.
pecifies the color of odd rows in the grid.
property OddRowColor: TColor;
Description
Use OddRowColor to specify the color of odd rows in the grid. It works only if sequence numbers are available for DataSet (DataSet.IsSequenced = True)and DataSet.RecNo return valid info. More often you will use OddRowColor in combination with EvenRowColor.
EhLib Software