LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Expand в ...
 Тема: Expand в TreeView
 
 15.06.2007 21:08:48
Константин1
3 сообщения


Тема: Expand в TreeView
Ситуация: Узлов в дереве порядка 15 тыс и количество постоянно будет расти, соответственно если строить сразу то очень медленно.Для убыстрения вывода списка объектов в TreeView пользуюсь следующим способом: вывожу коренные объекты (если есть подчиненные, то создаю временный подъобъект. Ну чтоб было видно, что есть дочерние). А на событие Expand временные объекты удаляю и прорисовываю реальные дочерние объекты.
Столкнулся с такой проблемой:
при раскрытии объекта пользователь видит происходящие изменения (удаление временного и прорисовку реальных объектов).
Пытался пользоваться SendMessage - не работает.
Вышло с LockWindowUpdate. Но вопрос: на какие события вешать разрешение/запрещение прорисовки экрана?
И еще, как можно проверить что узла скажем с Key = "kn45" нет ?
Кто нибудь сталкивался с такими проблемами?
Или может есть другой способ решения этих проблем?


P.S. Объект TreeView
Автор: Константин от 04.09.2003 15:55:48 Источник ...
 15.06.2007 21:08:48
All
4316 сообщения
1-ый


RE: Expand в TreeView
У меня так построен аналог Проводника - работает без проблем, без всяких запретов.
Если вы в событии Expand заполняете дерево, то оно сначала заполнится, а потом уже узел развернется - так что пользователь не видит процесса. Да и удаление временного-заполнение узла происходит один раз.

Обратитесь к узлу с Key=..., если его нет, то будет ошибка


P.S. Объект TreeView
Автор: Николай от 0:00:00 Источник ...
 15.06.2007 21:08:48
Константин1
3 сообщения


RE: Expand в TreeView
Дело в том, что при обработках на событие Expand (во всяком слючае у меня так) происходит такая ерунда, если следом за раскрываемым узлом есть еще один, то он (на время обработки) дублируется, а после обработки удаляется - неудобно и некрасиво.
К примеру: есть узлы одного уровня - документы и шаблоны. При развертывании документов появляется второй экземпляр шаблонов (становится после уже существующего узла), происходит динамическое добавление дочерних узлов документов, они прорисовываютя и удаляется дубликат шаблонов.

Вот такая ситуевина.


P.S. Объект TreeView
Автор: Константин от 10.09.2003 13:16:42 Источник ...
 15.06.2007 21:08:48
All
4316 сообщения
1-ый


RE: Expand в TreeView
Не понял, а зачем что-то дублировать.
При загрузке в TreeView в каждый узел добавляете дочерний с уникальным признаком Key или Tag . Например key="*" + количество узлов.
Тогда при раскрытии узла проверяете - если количество дочерних =1 и первый символ Key дочернего узла ="*", то удаляете этот дочерний узел и заполняете родителя по тем же правилам



P.S. Объект TreeView
Автор: Николай от 0:00:00 Источник ...
 15.06.2007 21:08:48
Константин1
3 сообщения


RE: Expand в TreeView
Так в том то и дело, что это не я дублирую, а сам Access при перерисовке такое вытворят.
Из за этого такой сырбор с запретом перерисовки экрана и городится.


P.S. Объект TreeView
Автор: Константин от 11.09.2003 11:08:40 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Expand в ...
ПоискПоиск  Список форумовСписок форумов  
right