Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2014, 21:53   #1
ifreestyler
Пользователь
 
Регистрация: 03.12.2014
Сообщений: 33
По умолчанию Выпадающий список в конкретных ячейках DBGRID (DBGRIDEH)

Прошу помощи!
Есть такая задача, вывести выпадающий список в DBGrid или DBGRidEh, но не во всей колонки а только в некоторых ячейках.
Например поле status = 0 тогда в определенной колонке виден выпадающий список.
Много гуглил, но нашел только как сделать этот список при выделенной ячейке.
Код:
procedure TForm1.dbgrdh3Columns10AdvDrawDataCell
...
cbb15.Parent := dbgrdh3;
    cbb15.Style := csDropdownList;
    cbb15.Left := Params.CellRect.Left;
    cbb15.Top := Params.CellRect.Top + dbgrdh3.top;
    cbb15.Width := Params.CellRect.Right - Params.CellRect.Left + 2;
    cbb15.Visible := True;
Соответственно при ColExit список скрывается. Однако мне нужно чтобы он был виден всегда пока status не поменяется. С вышеупомянутым кодом проблема, если не скрывать список то при скролле DBGrid список тоже поднимается и всё съезжает.
В DBGridEh можно выводить выпадающий список всегда, но это мне тоже не подходит потому что если status=1 то в ячейке должно быть просто значение..
Помогите! Посоветуйте куда копать... Уже всю голову сломал..
ifreestyler вне форума Ответить с цитированием
Старый 04.12.2014, 08:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А я бы не надеялся на пикап-списки в гридах подобного уровня.
Я бы сделал отдельную форму с ListBox и наполнением списка нужного, и по двойному клику (или одинарному) ее на экран показывал. А уже в обработчике клика этого можно будет проверку делать на status.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2014, 09:55   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если таких колонок несколько или доублклик не подходит можно в AfterScroll управлять в зависимости от status свойством ButtonStyle колонки - cbsEllipsis или cbsNone. А в событии OnEditButtonClick колонки создавать модальную форму c листбоксом (или всплывающее меню) и привязывать ее координаты к ячейки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 04.12.2014 в 10:19.
Аватар вне форума Ответить с цитированием
Старый 04.12.2014, 18:18   #4
ifreestyler
Пользователь
 
Регистрация: 03.12.2014
Сообщений: 33
По умолчанию

Спасибо за ответы! в принципе думал такие варианты, но как то слишком сложными, чтоли показались они мне...в общем решил не заморачиваться, просто в ячейку в зависимости от статуса просто вставил картинку выпадающего списка, типа поле со стрелочкой...юзер будет видеть что можно выбрать что то..нажмет на картинку, а она подмениться настоящим выпадающим списком...пока остановился на таком варианте
ifreestyler вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBGridEh выпадающий список на несколько колонок metalic2010 БД в Delphi 0 03.06.2014 19:09
DBGrid выпадающий список Tzana Помощь студентам 0 21.11.2011 15:25
Выпадающий список в DBGrid alex_28 БД в Delphi 4 29.09.2010 10:57
Как создать выпадающий список в ячейке DBGridEh? Garacio2 БД в Delphi 4 25.10.2008 14:04
Выпадающий список в DBGrid Belik БД в Delphi 2 29.02.2008 18:25