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

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

Колонка для "птичек" в гриде. [D7]


MsGuns ©   (2012-09-13 11:04:00) 

Здравствуйте, уважаемые !
Потребовалось реализовать в сетке TDBGrid самую левую фиксированную колонку для "птичек" (подобно в TDBGridEh). Когда-то делал, но забыл и проект не нашел.
Попробовал через наследника TCustomDBGrid подкрутить FixedCols, но эффект совсем нехороший  :)
Создавать "свой" класс как наследник TDBGrid и заменять им все сетки проблематично ибо в проекте туча TDBGrid

Дайте подсказочку, если не трудно :)

Спасибо.


Jeer   (2012-09-13 18:13:00) [1]


> Тема закрыта


Ну значит и не особо нужно, действительно.


sniknik   (2012-09-13 18:10:00) [2]

> которого нет в примере
> ну значит меня глаза обманывают... а тебе не очень то и нужно.


Jeer   (2012-09-13 18:07:00) [3]

И чем тебе [16] не айс ?


MsGuns   (2012-09-13 18:05:00) [4]

Фиксация колонки в "необычном" работает только если написать кучу кода, которого нет в примере (но есть ссылки на проект) - без этого глючит и при скроллинге, и при навигации кнопками.

Насчет не больно надо - таки да, это не главная цель жизни :)
По быстрому не вышло - и фиг с ним. Думал, что может это реализуется просто и быстро.

В во всяком случае спасибо за участие.

Тема закрыта


Jeer   (2012-09-13 17:23:00) [5]

Не, вот так этичнее:

procedure TfmMain.DBGrid1ColumnMoved(Sender: TObject; FromIndex,
 ToIndex: Integer);
begin
if (FromIndex=0) or (FromIndex =1) and (ToIndex = 0) then
   DBGrid1.Columns[ToIndex].Index := FromIndex;
end;


Jeer   (2012-09-13 17:11:00) [6]

Ну как-то так вроде можно:

procedure TfmMain.DBGrid1ColumnMoved(Sender: TObject; FromIndex,
 ToIndex: Integer);
begin
if (FromIndex <= 1 ) then
   DBGrid1.Columns[ToIndex].Index := FromIndex;
end;


sniknik   (2012-09-13 16:48:00) [7]

> клонка
"пунктуация сохранена" как говорится.


sniknik   (2012-09-13 16:47:00) [8]

1) Имитация внутренних группировок;
2) Метки в заголовках клонок. Попробуйте поменять "тип метки"  и отметить
разные колонки грида;
3) У грида фискирована клонка первого поля.


sniknik   (2012-09-13 16:45:00) [9]

ну значит меня глаза обманывают... а тебе не очень то и нужно.


MsGuns   (2012-09-13 15:56:00) [10]

В королевском "необычном" гриде нет фиксации колонки.


sniknik   (2012-09-13 15:48:00) [11]

даст "место" под нее... насколько понимаю. а собственно фиксацию сделать по статье с королевства много раз здесь приводившуюся... вроде "необычный грид" называется.


MsGuns   (2012-09-13 15:25:00) [12]

И как это решит проблему фиксации колонки грида ?


icWasya   (2012-09-13 15:23:00) [13]

Добавить к датасету вычисляемое поле


MsGuns   (2012-09-13 13:27:00) [14]

> http://delphiworld.narod.ru/_all_articles_.html

Спасибо, не нашел

Решил обмануть :)
"Хэкнул" св-во LeftCol и в событии OnColEnter делаю самую левую колонку (если ее индекс меняется) "птичьей" (заголовок+ширина). Предварительно восстанвливаю св-ва той колонки, что была левой и сохраняю св-ва той, что стала.
В перерисовщике рисую псысы где нужно.
Все лихо работает пока не скроллингуешь ползунком, да и при сохранении TColumns->SaveToFile надо восстанавливать левую колонку :)

Похоже, ларчик не так уж просто открывается :)


AV   (2012-09-13 12:32:00) [15]

http://delphiworld.narod.ru/_all_articles_.html
найти на странице "TDBGrid - [82]"
может что-то найдешь, если нет - то идею


MsGuns   (2012-09-13 12:28:00) [16]

>Sha ©   (13.09.12 11:50) [4]
> http://www.delphisources.ru/pages/faq/base/checkbox_in_dbgrid.html

Спасибо, но...
Проблема собственно не в рисовании чекбоксов, а в том, чтобы зафиксироватьлевую колонку. В ссылке этого нет, к сожалению :(


Sha   (2012-09-13 11:50:00) [17]

http://www.delphisources.ru/pages/faq/base/checkbox_in_dbgrid.html


sniknik   (2012-09-13 11:34:00) [18]

в проекте 100 гридов надо для половины т.е. 50ти, это 100 слов заменить...


MsGuns   (2012-09-13 11:25:00) [19]

надо не для всех TDBGrid


sniknik   (2012-09-13 11:19:00) [20]

> заменять им все сетки проблематично ибо в проекте туча TDBGrid
заменить в dfm и переменных формы тип TDBGrid на к примеру TMySuperDBGrid проблематично???? сказки какие то.
ну допустим в проекте 100 гридов, это 200 слов заменить... да уж "проблема века", никто не осилит. :)


Наверх

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