![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
dxDbGrid [D7, WinXP]
ChILP © (2005-08-31 14:04:00)Добрый день. Такой вопрос: "Можно ли сделать, чтобы в компоненте dxDbGrid некоторые значение столбца не отображались(были невидимыми)". Т.е чтобы отображались не все значения данного поля, а только отвечающие некоторым условиям.
ChILP (2005-09-01 16:26:00) [1]Всё. Разобрался. Всем спасибо за помощь.
Sam Stone (2005-09-01 15:49:00) [2]
> Принять нулевое значение поле не может, т.к используется
> тип дата
что, не получается присвоить дате значение NULL? :\
Можно еще поработать со свойством OnGetText, "затирая" выводимый текст
ChILP (2005-09-01 15:12:00) [3]Sam Stone, смысл в том, что мне нужно отобразить всю строку кроме одного элемента. Принять нулевое значение поле не может, т.к используется тип дата. Я и решил попробовать заменить несуществующую дату на некоторую абстрактную, которую стоит сделать невидимой......
Sam Stone (2005-09-01 14:51:00) [4]Т.к. грид ДБшный, то нельзя ли все это сделать на уровне запроса? Т.е. ненужные значения заменять пустой строкой.
ChILP (2005-09-01 10:55:00) [5]С цветом фона и текста разобрался. Кстати, для dxDbGrid вместо OnDrawColumnCell используется onCustomDrawCell.
Теперь возникает вопрос, как поменять цвет ячейки, когда текущая запись активна (т.е. highLightColor и highLightTextColor не для всей строки, а для одной ячейки)?
Reindeer Moss Eater (2005-08-31 17:39:00) [6]В результате с цветами всё ОК, но когда отображаются строки "белого" цвета страница слегка "подвисает"........
dbPackageListCALC_PACKAGE_POSTED_DATE.Font.Color:=clwhite;
Ну еще бы она не подвисала.
Ты ячейку должен в обработчике отрисовать, а не цвет фонта всего грида менять!
type TDrawColumnCellEvent = procedure (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState) of object;
ChILP (2005-08-31 17:36:00) [7]а нельзя ли по-подробнее, про OnDrawColumnCell
пробовал в обработчике событий onCustomDrawCell использовать цвет шрифта совпадающий с цветом фона при нахождении значения, которое не надо отображать
if ANode.Values[dbPackageList.ColumnByFieldName('POSTED').Index]='Y' then begin
AColor:=clYellow;
dbPackageListCALC_PACKAGE_POSTED_DATE.Font.Color:=clblack;
end;
else begin
AColor:=clwhite;
dbPackageListCALC_PACKAGE_POSTED_DATE.Font.Color:=clwhite;
end;
В результате с цветами всё ОК, но когда отображаются строки "белого" цвета страница слегка "подвисает"........
Leonid Troyanovsky (2005-08-31 15:29:00) [8]
> ChILP (31.08.05 14:04)
> Добрый день. Такой вопрос: "Можно ли сделать, чтобы в компоненте
> dxDbGrid некоторые значение столбца не отображались(были
> невидимыми)". Т.е чтобы отображались не все значения данного
> поля, а только отвечающие некоторым условиям.
Можно.
VCL Reference TCustomDBGrid.OnDrawColumnCell
--
Regards, LVT.