![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
gesper |
|
|||
![]() "Shарфик" ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 23.2.2005 Репутация: 1 Всего: 2 |
Создается два класса, второй(TEntityList) живет внутри первого(TObject). Класс созданный на основе базового класса при создании себя создает второй класс и помещает в него указатель на класс списка. Т.е. Документ, хранит свои объекты и в списке объектов дублируется указатель, на список уже выбранных объектов.
Проблема в том, что голова не варит уже. Делал так, присваивал переменным указатель на место памяти где смотреть нужные данные и все работало всегда, а тут хоть тресни.. они при присвоении "List.SelectedList:=FSelectList;" как будто клонируются. Т.е. если запрошу кол-во эл-тов списка, то условие List.SelectedList.Count=FSelectList.Count не будет выполняться. И в private и protected пробовал держать переменные, один хрен. Что я пропустил? --------------------
...И приколется обломившийся и oбломится приколовшийся... |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Есть подозрения что TEntityList.SelectedList.Count перекрыт. Покажи хотя бы описание TEntityList Это сообщение отредактировал(а) Poseidon - 21.12.2013, 01:01 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
gesper |
|
|||
![]() "Shарфик" ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 23.2.2005 Репутация: 1 Всего: 2 |
Да мне не жалко и все скинуть, просто куда.
--------------------
...И приколется обломившийся и oбломится приколовшийся... |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Ну все правильно. У TList свой Count, у TEntityList свой. Ты уверен что они подсчитывают по одинаковому алгоритму? Покажи реализацию TEntityList.GetCount
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
gesper |
|
||||||||||
![]() "Shарфик" ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 23.2.2005 Репутация: 1 Всего: 2 |
Давай заново. Тут речь не о TEntityList.GetCount
создания ActiveDocument.List.SelectedEntity нету негде, она назгачается как ярлык только, а работает как будто другой список :( Это сообщение отредактировал(а) gesper - 21.12.2013, 20:57 --------------------
...И приколется обломившийся и oбломится приколовшийся... |
||||||||||
|
|||||||||||
БелАмор |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 5 Всего: 17 |
Вы нарушаете важнейший принцип: "Одно и то-же значение должно храниться в единственном экземпляре". Вы создаёте объект типа TList и указатель на него храните в двух разных местах: FSelectList List.SelectedEntity Первоначально (после вызова конструктора) там хранятся одинаковые указатели, ссылающиеся на тот самый TList. Однако, у вас предусмотрено свойство SelectList, которое меняет указатель только в FSelectList:
Если вы где-то присвоите SelectList ссылку на другой список, то произойдёт рассинхронизация, поскольку List.SelectedEntity будет ссылаться на старый список, тогда как FSelectList - на новый. P.S. Кстати, вы не привели объявление List, хотя и понятно, что это TEntityList. |
||||
|
|||||
gesper |
|
|||
![]() "Shарфик" ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 23.2.2005 Репутация: 1 Всего: 2 |
БелАмор, спасибо. Мне и нужно было, реализовать доступ к одному списку с двух мест. Пролема в том, что уперся мировозрением в точку отсчета от процедуры создания документа, а в первоночальном варианте программы, список выборки создавался в управляющем классе. Действительно переписывалась ссылка, но только не в той переменной на которую грешил. --------------------
...И приколется обломившийся и oбломится приколовшийся... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |