| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Virtual Treeview Checked All |
| Автор: van74 23.11.2011, 08:08 | ||||
| Здравствуйте ! Использую Virtual Treeview в качестве грида. В первой колонке у меня чекбокс для отметки, что строка отмечена. Хочу сделать процедурку, которая бы пометила все строки. Не хотелось бы бежать по всем загруженным строкам и ставить пометку. Ввел переменную vMarkedAll : boolean По ней хотелось бы понимать что все строки считаются выделенными и соотвественно делать CheckBox-ы в первой колонке чекнутыми. Сделал так :
Но в этом случае CheckBox-ы отрисовываются только тогда когда над строкой проходит указатель мыши. Нельзя ли как нибудь заставить VirtualTree полностью перерисоваться ? Или подскажите другой способ сделать выделение всех строк без беганья по ним ?
|
| Автор: 14SatanA88 23.11.2011, 08:28 |
| а у компонента нет метода типа Repaint? |
| Автор: van74 23.11.2011, 08:33 |
| Естественно есть И естественно я его вызываю. Пробовал и Refresh и repaint не помогает |
| Автор: MetalFan 23.11.2011, 08:48 | ||||
| Запомните, а лучше запишите: если не хотите подобных проблем, то не стоит напрямую менять св-ва PVirtualNode. Для корректной смены состояния CheckedState есть св-во у дерева: CheckState. Через него и надо выставлять состояния отмеченности у нода. Это касается и всех других полей TVirtualNode. таким образом
меняем на
и радуемся жызни) |
| Автор: van74 23.11.2011, 08:54 |
| О! спасибо ! помогло ! |
| Автор: van74 23.11.2011, 10:26 |
Модератор: Сообщение скрыто. |