![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Колонка для "птичек" в гриде. [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 слов заменить... да уж "проблема века", никто не осилит. :)