![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Marsianin |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 48 Регистрация: 24.11.2004 Репутация: нет Всего: нет |
Статью прочитал, да и уже какое-то время плотно ковыряю VT, всё ясно, однако не могу додумать одну вещь.
При создании дерева у меня есть дети, у которых родитель имеет triStateCheckBox. Так вот эти дети сами имеют checkbox и при создании имеют различные положения. Когда дерево показывается дети все прочеканы по разному, а вот родитель - нет. Если кликать мышкой, то автоматом всё встаёт на свои места и родитель чекается, как надо. Как, если я программно изменил состояния детей, обновить состояние triCheckBox их родителя? Это сообщение отредактировал(а) Marsianin - 31.7.2007, 05:48 |
|||
|
||||
AriX |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 16.6.2003 Репутация: 5 Всего: 19 |
Marsianin,
И также у родителей нужно выставить:
Это сообщение отредактировал(а) AriX - 31.7.2007, 13:08 |
||||
|
|||||
Marsianin |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 48 Регистрация: 24.11.2004 Репутация: нет Всего: нет |
Не, ты не понял.
Это дело у меня по умолчанию включено и всё делается как надо. Проблема в том, что когда я программно заполняю дерево и сначала делаю родителя (присваивая ему triStateCheckbox), а потом этому родителю создаю детей, у которых обычный checkbox, и дети эти имеют всякие разные значения. Так вот после создания всех этих детей состояние чекбокса родителя - снято, а должно быть серым. Как только тыкаешь в дереве мышкой по одному из детей и меняешь его состояние, то тогда и начинает срабатывать toAutoTristateTracking и родитель меняет своё состояние автоматом. Вообщем как вызвать руками ту процедуру, которая автоматом происходит при чеканьи руками детей... |
|||
|
||||
AriX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 16.6.2003 Репутация: 5 Всего: 19 |
Marsianin, вот так работает на ура, только что проверил:
Может быть ты работаешь непосредственно с данными в PVirtualNode? А нужно использовать свойства CheckType и CheckState дерева. Добавлено через 57 секунд Хм, а я и сам написал Node.CheckType ![]() |
|||
|
||||
Marsianin |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 48 Регистрация: 24.11.2004 Репутация: нет Всего: нет |
Так, понятное дело, работает.
Пока сделал именно так, но в первом случае у меня они инициализировались в событии OnInitNode и там я им присваивал Node.CheckState:=csCheckedNormal; В этом случае не обновляется родитель, как я только не пробовал ![]() |
|||
|
||||
AriX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 16.6.2003 Репутация: 5 Всего: 19 |
Marsianin, ну так я и говорю, юзать нужно не PVirtualNode.CheckState, а TVirtualStringTree.CheckState[Node: PVirtualNode].
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |