Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо