![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
halfhope |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Не подскажете решение моей проблемы?!
Есть контакт лист с пользователями, где есть два типа записей(record) "User" и "Group". Каждый User может входить в несколько групп. При создании записи пользователя vdt получает указатель на запись пользователя, при создании дубликата пользователя(в случае если пользователь содержится в нескольких списках) я не знаю как "сказать vdt" чтобы он его дублировал, а не создавал новую запись(т.е. пользователя). Это сказывается при смене параметров записи. Например, Пользователь вошел в сеть, ему нужно поставить статус Online. Я ставлю, но статус присваивается только одному пользователю т.е. его дубликаты имеют каждый свою запись, а нужно чтобы все ссылались на одну запись. Прошу помочь тех, кто работал с vdt.
Вот скрин. ![]() |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Как-то так:
Единственное - нужно проверить, будет ли нормально обрабатываться ситуация, когда один нод удален и пошло обращение ко второму, содержащему ссылку на тот же элемент. |
|||
|
||||
halfhope |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Все равно не получается, выложу сорцы. Может я что-то не так делаю?!. Просто первый раз с указателями работаю, но вроде бы тут все просто.
Да, спасибо, совсем забыл про обработку такой ситуации. Там в onCreate формы идет добавление. А cList.pas это обертка отрисовки для vdt. Это сообщение отредактировал(а) halfhope - 15.8.2012, 12:53 Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Слишком много смотреть. Куча лишнего, не относящегося к задаче. Показываю свой пример, в котором всё дублируется так, как нужно. Правда, на VirtualStringTree, но сути дела не меняет - все задействованные методы VT относятся к BaseVirtualTree.
Это сообщение отредактировал(а) kami - 15.8.2012, 13:57 |
|||
|
||||
halfhope |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Огромное спасибо, за помощь. Разобрался, все работает.
|
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Еще раз хочу заострить внимание:
Иначе пойдут или AV (что предпочтительнее), или будет использоваться и отображаться мусор вместо реальных данных. |
|||
|
||||
halfhope |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Ну, этим займется рекурсивный поиск. В обертке допишу override ф-ию, которая при удалении нода будет искать и удалять ноды, указывающие на ту же запись. Пожалуй сейчас этим и займусь. Осталось дело за малым, нужно, чтобы текст не вмещающийся в отрисованный нод сжимался "обрезался". Пожалуй, заранее размеры для текста лучше задавать при onResize, а не при onDrawNode так будет "экономичней" и правильнее. А при отрисовке он просто будет брать данные ширины из уже "готовой к новым размерам" переменной. Спасибо за совет. Очень приятно, что такие люди есть)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |