Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разноцветный DBGrid 
:(
    Опции темы
Rodman
Дата 26.4.2007, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Цитата(korotkov @  26.4.2007,  11:24 Найти цитируемый пост)
так с версии 3.6 она делается полосатой штатными средствами.

да без проблем, если мой метод совершенно не подходит не юзайте. я предложил выход, каждый в праве выбирать...
Цитата(korotkov @  26.4.2007,  11:24 Найти цитируемый пост)
не понятна химия if(DataCol=0)then Inc(StrNum);

Код

DataCol=0

срабатывает когда прорисовуется первый столбец строки, и я переключаю в это время цвет...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
korotkov
Дата 26.4.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



StrNum обнуляю при открытии набора данных, с надеждой что не будет переполнения, т.е. такого количества строк при выборке, сортировке  или фильтрации ...

... сделал, получилось, но ...

>if(DataCol=0)
здесь не обязательно условие на 0, у меня например первые столбцы скрытые ;) и вся таблица получалась кремовой, поэтому в условии следует указывать номер видимого столбца в DBGrid.

если потаскать поверх такого грида какое-нибудь окно, то в гриде получится венигрет с цветами строк ... ;)

со скролингом данных в таблице проблема прорисовки полосатости ...

и в этом варианте не работает множественное выделение цветом строк ... т.е. я не вижу какие строки я выделяю ctrl + мышка, они просто тупо перересовываются ;)

Это сообщение отредактировал(а) korotkov - 30.4.2007, 23:13
PM MAIL WWW ICQ   Вверх
korotkov
Дата 30.4.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



всеже интересует "честный" вариант полосатой таблицы при фильтрации или хотябы при отмене оной!
PM MAIL WWW ICQ   Вверх
korotkov
Дата 4.5.2007, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



Ура, победил, нашел "честный" путь:

в Options у pFIBDataSet установил poVisibleRecno = True и таблица стала полосатой и при фильтрации ;)

надо иногда и описания читать, та и голова не только чтоб в нее есть ...  ;)
PM MAIL WWW ICQ   Вверх
Telepyz
Дата 24.12.2010, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 9.7.2007

Репутация: нет
Всего: 1



Че вы паритесь все просто...

делаем что то вроде этого

Код

procedure TFSeans.STableDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  h: integer;                  //высота хедера дата грида
  font_h: integer;          //высота текущего шрифта дата грида
begin
  h:=//наодим высоту хедера дата грида
  font_h:=//наодим высоту текущего шрифта дата грида
  if Odd((Rect.Top-h)/font_h) then
    (Sender as TDBGrid).Canvas.Brush.Color := $B0B0FF
  else
    (Sender as TDBGrid).Canvas.Brush.Color := $FFB0B0;
  (Sender as TDBGrid).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;


Вот и все код не проверял, но что-то подобное использовал
его немного подшлифовать и все должно работать
Odd - стандартная проверка на четность

--------------------
обновить драйвер
PM MAIL   Вверх
superVad
Дата 24.12.2010, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



В jvcl библиотеке ДБГрид умеет делать черезстрочную раскраску.
PM MAIL   Вверх
Deniz
Дата 24.12.2010, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Telepyz, зачем поднимать топик 3-х летней давности, тем более что там решение уже было, как в части кода так и штатными средствами используемого грида (EHLib).

Добавлено через 57 секунд
PS: может модераторы закроют данную тему?


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.